gpt4 book ai didi

python - 我在设置 django-pagination 时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:38 24 4
gpt4 key购买 nike

我正在为 Django 网站制作模板(它是报价数据库)。我想要类似 Digg 的分页。虽然,该应用程序的作者已经制作了自己的分页,不幸的是没有页码(只有“上一个”和“下一个”链接)。所以我安装了 django-pagination,但我不能在网站上使用它。我对 Django 完全陌生,甚至是编程 - 我只是一个简单的网页设计师......好的,我们开始吧。

有原始脚本:https://bitbucket.org/fleg/fqdb/

首先是模板上下文处理器的问题。我的 settings.py 没有这个部分,所以我添加它就像在 django-pagination 文档中一样。当我运行该站点时,出现错误:“将‘django.contrib.auth.context_processors.auth’放入您的 TEMPLATE_CONTEXT_PROCESSORS 设置中,以便使用管理应用程序”。那么我要如何订购呢?

第二个问题是模板。我完全像在the screencast上一样使用它:

{% 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:请求”。但是...说真的,我不知道这段代码有什么问题!

有分页 View - 报价单。它无需分页即可工作,所以我认为这不是问题,但也许吧。

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 上找到原始 View 。

也许您知道一些更好的分页解决方案?

最佳答案

看起来您需要添加 django.contrib.auth.context_processors.authdjango.core.context_processors.request上下文处理器到您的 TEMPLATE_CONTEXT_PROCESSORS 设置。

在您定义 TEMPLATE_CONTEXT_PROCESSORS 之前,django 会使用默认值。看起来您的某些代码似乎需要 auth 处理器,因此是您的第一条错误消息。

KeyError 在我看来好像您需要 request 处理器。

在您的设置文件中尝试以下操作:

TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
#"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
#"django.core.context_processors.static",
#"django.contrib.messages.context_processors.messages")
"django.core.context_processors.request"
)

我使用了 Django 1.3 request context docs 中给出的默认列表,添加了请求处理器,并注释掉那些你似乎不需要的。

模板上下文处理器的顺序通常无关紧要,只要它们不定义重叠的变量名即可。

关于python - 我在设置 django-pagination 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7718328/

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