【问题标题】:Can django-pagination do multiple paginations per page?django-pagination 可以每页进行多个分页吗?
【发布时间】:2012-05-17 17:16:00
【问题描述】:

如果不能,那么是否有任何其他替代方案(Django 的本机分页或替代包)允许每页有多个分页?

我想显示大约 5 个对象的列表,每个对象都有自己的分页上下文。

为方便起见,这里是documentation for django-pagination

【问题讨论】:

  • 我正在寻找同样的东西。你有什么发现吗?

标签: python django django-pagination


【解决方案1】:

我知道这篇文章已经过时了,但它仍然具有相关性。以下内容适用于 Django 1.9。

这是怎么做的,

views.py

def myview():
    Model_one = Model.objects.all()
    paginator = Paginator(Model_one, 6)
    page = request.GET.get('page1')
    try:
        Model_one = paginator.page(page)
    except PageNotAnInteger:
        Model_one = paginator.page(1)
    except EmptyPage:
        Model_one = paginator.page(paginator.num_pages)

    Model_two = Model_other.objects.all()
    paginator = Paginator(Model_two, 6)
    page = request.GET.get('page2')
    try:
        Model_two = paginator.page(page)
    except PageNotAnInteger:
        Model_two = paginator.page(1)
    except EmptyPage:
        Model_two = paginator.page(paginator.num_pages)

    context = {'Model_one': Model_one, 'Model_two': Model_two}
    return render(request, 'template.html', context)

上面重要的是'page1'和'page2'。

在模板中,

    {% if model_one %}
      <div class="col-md-12 well">
        {% for item in model_one %}
        ..... iterates through model_one.....
        {% endfor %}
        <span class="step-links pagination">
            {% if model_one.has_previous %}
                <a href="?page1={{ model_one.previous_page_number }}"> previous </a>
            {% endif %}
            <span class="current">
                Page {{ model_one.number }} of {{ model_one.paginator.num_pages }}
            </span>
            {% if model_one.has_next %}
                <a href="?page1={{ model_one.next_page_number }}"> next </a>
            {% endif %}
        </span>
      </div>
      {% endif %}
      {% if model_two %}
      <div class="col-md-12 well">
        {% for item in model_two %}
        ..... iterates through model_two.....
        {% endfor %}
        <span class="step-links pagination">
            {% if model_two.has_previous %}
                <a href="?page2={{ model_two.previous_page_number }}"> previous </a>
            {% endif %}
            <span class="current">
                Page {{ model_two.number }} of {{ model_two.paginator.num_pages }}
            </span>
            {% if model_two.has_next %}
                <a href="?page2={{ model_two.next_page_number }}"> next </a>
            {% endif %}
        </span>
      </div>
      {% endif %}

再次使用'page1'和'page2'来区分每个模型的分页。

【讨论】:

    【解决方案2】:

    当然,这是可能的。我不能代表 django-pagination 包,但绝对可以使用默认的 Django 的 Paginator 类。您可以在视图中创建任意数量的它们。只需选择不同的 GET 参数来为每个参数指定页面即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      相关资源
      最近更新 更多