Django render_to_string Returns NoneType Error

Использование Django Pagination Я пытаюсь сделать бесконечную пагинацию с помощью AJAX. Я последовал примеру, приведенному здесь: https://www.progerhub.com/tutorial/adding-pagination-with-infinite-scroll-in-django/

Мое представление возвращает первую страницу результатов просто отлично, но когда я пытаюсь создать содержимое для дополнительных страниц и вернуть его в виде JSON с помощью render_to_string, я получаю ошибку при добавлении данных к моей переменной content.

сообщение об ошибке

web_1  | Traceback (most recent call last):
...
web_1  |   File "/usr/src/django/media/views.py", line 74, in get
web_1  |     content += render_to_string('media_item.html', {'media': media, }, request=request)
...
web_1  |     new_obj = func(obj, *arg_vals)
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/template/defaultfilters.py", line 784, in divisibleby
web_1  |     return int(value) % int(arg) == 0
web_1  | TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

models.py

class Media(Audit):

    title = models.CharField(
        max_length=255)
    description = models.CharField(
        max_length=500,
        blank=True,
        null=True)
    poster = ProcessedImageField(
        blank=True, 
        null=True,
        format='JPEG',
        options={'quality': 100},
        processors=[ResizeToFill(1000, 1500)],
        upload_to=get_poster_path)

    class Meta:
        ordering = (
            'title',
            'year')

    def __str__(self):
        return self.title

views.py

class MediaView(LoginRequiredMixin, JsonMixin, View):

    def get(self, request, *args, **kwargs):
        context = self.get_context_data()
        media = models.Media.objects.filter()
        page = int(request.GET.get('page', 1))
        p = paginator.Paginator(media, 24)  # number of media per page

        # try to get media for the given page
        try:
            media_page = p.page(page)
        except paginator.EmptyPage:
            media_page = paginator.Page([], page, p)

        # get initial media list
        if not request.is_ajax():
            context['media_list'] = media_page
            return render(request, 'media.html', context)
        # get more media using ajax
        else:
            content = ''
            for media in media_page:
                content += render_to_string('media_item.html', {'media': media}, request=request)

            data = {
                'content': content,
                'end_pagination': True if page >= p.num_pages else False,
            }
            print(data)
            return self.render_to_json_response(data)

По-видимому, в моем {'media': media} что-то не так с render_to_string, но я не уверен, что именно. Может быть, я что-то упустил из виду?

Вместо:

{% if forloop.counter|divisibleby:2 %}<div class="w-100 d-none d-sm-block d-md-none"><!-- wrap every 3 on sm--></div>{% endif %}
{% if forloop.counter|divisibleby:2 %}<div class="w-100 d-none d-md-block d-lg-none"><!-- wrap every 4 on md--></div>{% endif %}
{% if forloop.counter|divisibleby:4 %}<div class="w-100 d-none d-lg-block d-xl-none"><!-- wrap every 5 on lg--></div>{% endif %}
{% if forloop.counter|divisibleby:6 %}<div class="w-100 d-none d-xl-block"><!-- wrap every 6 on xl--></div>{% endif %}

try:

{% if forloop.counter %}
    {% if forloop.counter|divisibleby:2 %}<div class="w-100 d-none d-sm-block d-md-none"><!-- wrap every 3 on sm--></div>{% endif %}
    {% if forloop.counter|divisibleby:2 %}<div class="w-100 d-none d-md-block d-lg-none"><!-- wrap every 4 on md--></div>{% endif %}
    {% if forloop.counter|divisibleby:4 %}<div class="w-100 d-none d-lg-block d-xl-none"><!-- wrap every 5 on lg--></div>{% endif %}
    {% if forloop.counter|divisibleby:6 %}<div class="w-100 d-none d-xl-block"><!-- wrap every 6 on xl--></div>{% endif %}
{% endif %}
Вернуться на верх