使用通用视图创建django分页
我在使用泛型视图进行django分页时遇到了一个小问题,将多个模型传递给一个模板,其中一个模型必须分页。寻呼机不会显示模板上的下一页,但只生成一个页面 下面是我的代码: views.py:使用通用视图创建django分页,django,html,Django,Html,我在使用泛型视图进行django分页时遇到了一个小问题,将多个模型传递给一个模板,其中一个模型必须分页。寻呼机不会显示模板上的下一页,但只生成一个页面 下面是我的代码: views.py: class homeView(generic.ListView): template_name = 'success/home_page.html' context_object_name="articles" paginate_by = 3 def get_quer
class homeView(generic.ListView):
template_name = 'success/home_page.html'
context_object_name="articles"
paginate_by = 3
def get_queryset(self):
articles =Articles.objects.order_by('article_title')
paginator = Paginator(articles,self.paginate_by)
page = self.request.GET.get('page')
try:
articles = paginator.page(page)
except PageNotAnInteger:
articles = paginator.page(1)
except EmptyPage:
articles = paginator.page(paginator.num_pages)
return articles
def get_context_data(self,**kwargs):
context = super(homeView, self).get_context_data(**kwargs)
context['quote'] = Quotes.objects.order_by('quote')
return context
模板:
{% for article in articles %}
{{ article.article_title}}
{{ article.aticle_hit}}
{% endfor % %}
<div class="pagination">
{% if articles.has_previous %}
<a class="navlink" href="?page={{articles.previous_page_number}}">Prev</a>
{% endif %}
Page {{articles.number}} of {{articles.paginator.num_pages}}
{% if articles.has_next %}
<a class="navlink" href="?page={{articles.next_page_number}}">next</a>
{% endif %}
</div>
{%用于文章%中的文章]
{{文章.文章标题}
{{article.aticle_hit}}
{%endfor%%}
{%if articles.has_previous%}
{%endif%}
第{{articles.number}}页,共{{articles.paginator.num_pages}
{%if articles.has_next%}
{%endif%}
只是我的分页页面显示的第一页。“下一个”和“上一个”根本不起作用。请帮助我找到一种更好的方法来使用通用视图进行分页,并将多个模型传递到一个模板中。如前所述,请精简。如果你得到一个错误,发布它,这将有所帮助
class homeView(generic.ListView):
template_name = 'success/home_page.html'
context_object_name = "articles"
paginate_by = 3
model = Articles
def get_context_data(self, **kwargs):
context = super(homeView, self).get_context_data(**kwargs)
context['quote'] = Quotes.objects.order_by('quote')
return context
为什么要手动执行此操作?您可以删除整个
get\u queryset
方法,只需设置model=Articles
并保持分页方式即可。它将自动工作。get_queryset,因为我将两个模型传递给一个模板。我面临的分页问题不会在html模板上显示下一页和上一页,但您没有在get_queryset()中创建两个模型。相信我,你不需要问。删除它,添加模型,保留分页方式。然后看看它是否仍然不起作用,因为其他一切看起来都正常。显示出一个错误。我对django很新,如果您写下您的代码,我将不胜感激。通过这种方式,我将很快理解您解决问题的方法。提前感谢代码已被修剪,但我仍然面临相同的问题。我的html模板上总共有6个对象要显示。但只有3个对象显示,而不显示“下一步”按钮,要查看包含其他3个对象的下一页,请显示空白!!页面部分没有显示任何内容