gpt4 book ai didi

python - Django 分页基于 View 中的 bool 值

转载 作者:行者123 更新时间:2023-11-30 23:02:53 25 4
gpt4 key购买 nike

我是 Django 新手,尝试根据 URL 中的不同值设置分页。

在views.py中

class PageListView(ListView):
model = FbPage
paginate_by = 50

all_pages = False

def dispatch(self, *args, **kwargs):
self.request.session['all_pages'] = self.all_pages
return super(PageListView, self).dispatch(*args, **kwargs)

在 URL 中:

    url(r'^$', PageListView.as_view(), name='show_page_list'),
url(r'^all/$', PageListView.as_view(all_pages=True), name='all_show_page_list'),

在模板中:

        <div class="pagination">

<span class="page-links">
{% if page_obj.has_previous %}

<a href="{% url 'show_page_list' %}?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="page-current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }} (total {{ page_obj.paginator.count }} items).
</span>
{% if page_obj.has_next %}
<a href="{% url 'show_page_list' %}?page={{ page_obj.next_page_number }}">next</a>
{% endif %}
</span>
</div>

问题是,即使我在 home/all 页面中,它也会链接回 home 页面分页,因为我传递的是 show_page_list all_show_page_list

如何在模板中设置 if else 以便我可以正确分页或者我应该做一些不同的事情?

最佳答案

您可以在上下文变量中定义模式名称并将其传递到 {% url %} 标记中:

<div>
<div class="pagination">

<span class="page-links">
{% if page_obj.has_previous %}

<a href="{% url list_url %}?page={{ page_obj.previous_page_number }}">previous</a>
{% endif %}
<span class="page-current">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }} (total {{ page_obj.paginator.count }} items).
</span>
{% if page_obj.has_next %}
<a href="{% url list_url %}?page={{ page_obj.next_page_number }}">next</a>
{% endif %}
</span>
</div>

在您看来:

class PageListView(ListView):
model = FbPage
paginate_by = 50

all_pages = False

def dispatch(self, *args, **kwargs):
self.request.session['all_pages'] = self.all_pages
return super(PageListView, self).dispatch(*args, **kwargs)

def get_context_data(self, **kwargs):
context = super(PageListView, self).get_context_data(**kwargs)

context['list_url'] = 'all_show_page_list' if self.all_pages else 'show_page_list'

return context

关于python - Django 分页基于 View 中的 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34283686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com