django - 对象不能用 Django 的分页迭代

标签 django django-templates pagination django-pagination

我有一个显示事件列表的模板。为了准备事件列表,我使用了通用 View ,并设置了“paginate_by”参数。奇怪的是,当我加载我的页面时,我看到:

TemplateSyntaxError at /event/latest/
Caught an exception while rendering: 'int' object is not iterable

在 pagination.html 模板的第 9 行:

{% if is_paginated %}
{% load i18n %}
<div class="pagination">
    {% if page_obj.has_previous %}
        <a href="?page={{ page_obj.previous_page_number }}{{ getvars }}" class="prev">&lt;&lt; Prev</a>
    {% else %}
        <span class="disabled prev">&lt;&lt; Prev</span>
    {% endif %}
#here {% for page in pages %}
        {% if page %}
            {% ifequal page page_obj.number %}
                <span class="current page">{{ page }}</span>
            {% else %}
                <a href="?page={{ page }}{{ getvars }}" class="page">{{ page }}</a>
            {% endifequal %}
        {% else %}
            ...
        {% endif %}
    {% endfor %}
    {% if page_obj.has_next %}
        <a href="?page={{ page_obj.next_page_number }}{{ getvars }}" class="next">Next &gt;&gt;</a>
    {% else %}
        <span class="disabled next">Next &gt;&gt;</span>
    {% endif %}
</div>
{% endif %}

这是我的观点:

def events_nearest(request):
    events = Event.nearest.all()

    return object_list(request,
            queryset = events,
            extra_context = {'title': 'Nearest events'},
            paginate_by = 12,
            template_name = 'event/events_date.html')

和模型:

class NearestManager(models.Manager):
    def get_query_set(self):
        return super(NearestManager, self).get_query_set().order_by('-data')

class Event(models.Model):        
    category = models.ForeignKey(Category)
    title = models.CharField(max_length=120)
    slug = models.SlugField(max_length=255, unique=True, verbose_name='Slug')
    about = models.TextField()
    city = models.ForeignKey(City)

    objects = models.Manager()
    nearest = NearestManager()

知道是什么原因造成的吗?

最佳答案

pages 变量是页数,它是 int,因此错误:'int' object is not iterable

你应该遍历 page_range

{% for page in page_range %}

关于django - 对象不能用 Django 的分页迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3349506/

相关文章:

django.db.utils.ProgrammingError : data type character varying has no default operator class for access method "gin"

python - Flask-reST 少使用分页或获得完整响应

javascript - Angular-ui-grid 分页控件未显示

django - 如何动态更新 Form ChoiceField 中的 'initial' 值

python - Django:向模型窗体添加一个字段

python - 如何验证 django 自定义模型字段属性?

Django 甜化

python - 如何格式化 url 以在模板中返回类似 "product/4/improved-led-lamp"的内容

python - 在Django模板中以另一条记录的字段内容为标签显示未知数量的字段

php - 如何使用 CDataProvider 在 Yii 中创建我自己的 DataProvider?