【问题标题】:Unable to paginate object_list usng django-pagination无法使用 django-pagination 对 object_list 进行分页
【发布时间】:2011-12-27 17:14:17
【问题描述】:

我正在使用django-pagination 对我的模板中的对象列表进行分页。我已经安装了该应用程序,将其添加到我的项目中,并在我的 settings.py 文件中添加了 pagination.middleware.PaginationMiddleware。但是当我尝试在我的模板中使用它时,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 %}

对象列表位于名为Questionscontext_variable 中。我做错了吗?

【问题讨论】:

    标签: django django-templates django-pagination


    【解决方案1】:

    很长一段时间后,我才发现我在使用django-pagination 时遇到的错误。我有我在所有页面上扩展的规范基本模板。

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

    我的模板中有titlebody 块,我将{% autopaginate object_list %} 放在{% extends "base.html" %} 的下方,结果它不起作用。我发现我必须把这个语句放在body block 中,现在它工作得很好。

    【讨论】:

      【解决方案2】:

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

      您确定有足够的问题可以分页吗?您可以尝试以下方法:

          {% autopaginate Questions 2 %}
      

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

      【讨论】:

      • 是的,我可以看到全部内容,每页有足够多的问题...问题是它没有分页,这意味着它按原样显示所有页面...我大约有 100问题,它们都出现在同一个页面上
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-06
        • 2019-03-16
        • 2012-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-07
        相关资源
        最近更新 更多