无法分页object_list usng django-pagination

时间:2011-12-27 17:14:17

标签: django django-templates django-pagination

我正在使用django-pagination对我的temlate中的对象列表进行分页。我已经安装了应用,将其添加到我的项目中,并在pagination.middleware.PaginationMiddleware文件中添加了settings.py。但是当我尝试在我的模板中使用它时,object_list不是paginated。这是我的模板代码

{% extends "base.html" %}

    {% load pagination_tags %}
    {% autopaginate Questions %}

    {% block title %}
        Questions
    {% endblock %}


    {% block content %}
        <div id="contentDiv">

            {% for question in Questions %}
                <div style="padding:5px 20px 5px 30px;">

                    <p class='question'><span id='style2'>Q
                        <a href="{{ question.get_absolute_url }}" style="text-decoration:none; color:black;"> </span> {{ question.questiontext|safe }} </a> 
                        <span style= 'float:right;'><span style='font-size:12px; color:#099;'><a href="/question/type={{question.type}}" 
                        style='font-size:12px; color:#099;'>{{question.type}}</a></span> <span style='color:#99C; font-size:12px;'>Level: </span><span style='color:#099;font-size:12px;'>{{question.level}}</a></span></span>
                    </p>

                    <h2 class='trigger1' ><a href='#'>Answer</a></h2>
                    <div class='toggle_container' >
                        <div class='block' style='background-color:#fff; '>
                            <p class='ans'> {{ question.answer|safe }} </p>
                        </div>
                    </div>

                </div>
            {% endfor %}

            <div class="pagination" style="width:1000px; margin:auto; margin-bottom:20px;">
                {% paginate %}
            </div>

        </div>

{% endblock %}

对象列表位于名为context_variable的{​​{1}}中。我做错了吗?

3 个答案:

答案 0 :(得分:2)

很长一段时间后,我找到了django-pagination的错误。我有规范的基本模板,我在所有页面上扩展。

在文档中写道,我们需要在{% paginate %}之后放置{% autopaginate object_list %},但不要写{% autopaginate object_list %}本身的位置。

我的模板中有titlebody个阻止,我将{% autopaginate object_list %}放在{% extends "base.html" %}的正下方,因此无效。我发现我必须把这个陈述放在body block里面,现在它的工作非常好。

答案 1 :(得分:0)

如果你写“你好,我想要一个汉堡”或其他任何东西,你能看到你的分页div的内容吗?

您确定有足够的问题进行分页吗?你可以尝试类似的东西:

    {% autopaginate Questions 2 %}

确保您将在2个问题/页面上进行分页。

答案 2 :(得分:0)

解决了Sachin上面所说: 我刚刚移动{%load pagination_tags%} {%autopaginate list_objs 10%} 在{%block content%}语句中(之前它在它之外,所以分页是不可见的。如果没有错误,但现在页面 - 尝试使用它(移动分页块)。