我正在为 Django 网站制作一个模板(它是报价数据库)。我想要类似 Digg 的分页。尽管如此,该应用程序的作者已经进行了自己的分页,不幸的是没有页面编号(只是“上一个”和“下一个”链接)。所以我已经安装了 django-pagination,但我不能在网站上使用它。我在 Django 中完全是新手,甚至是编程——我只是一个简单的网页设计师……好吧,我们开始吧。
有原始脚本:https ://bitbucket.org/fleg/fqdb/
首先是模板上下文处理器的问题。我的 settings.py 没有这部分,所以我添加了它,就像在 django-pagination 文档中一样。当我运行该站点时,我收到一个错误:“将 'django.contrib.auth.context_processors.auth' 放入您的 TEMPLATE_CONTEXT_PROCESSORS 设置中,以便使用管理应用程序”。那么我该如何订购呢?
第二个问题是模板。我在截屏视频中使用它:
{% extends "fqdb/base.html" %}
{% load pagination_tags %}
{% block title %}{{ title }}{% endblock %}
{% block content %}
<h1>{{ title }}</h1>
{% if quotes %}
{% autopaginate quotes %}
{% for quote in quotes %}
{% include 'fqdb/quote_body.html' %}
{% endfor %}
{% paginate %}
{% else %}
<p>Brak cytatów.</p>
{% endif %}
{% endblock %}
但我收到“模板错误:渲染时捕获 KeyError:请求”。但是......说真的,我不知道这段代码有什么问题!
有分页视图 - 报价列表。它无需分页即可工作,所以我认为这不是问题,但也许。
def list_paged(request, page, order_by_what, title, reverse_name):
hash = get_ip_hash(request)
lista = Quote.objects.filter(accepted = True).order_by(order_by_what)[:]
returnDict = {'quotes': lista, 'title': title, 'hash': hash, 'sidebar': get_sidebar()}
return render_to_response('fqdb/quote_list.html', {'quotes': get_quotes(quotes)}, context_instance=RequestContext(request))
我已将其修改为不分页,因为它是 django-pagination 任务。您可以在 Bitbucket 上找到原始视图。
也许你知道一些更好的分页解决方案?