Django模板标签异常

发布于 2024-08-26 21:28:50 字数 614 浏览 11 评论 0原文

看起来这个模板标签对大多数人来说都很有吸引力:

http://blog.localkinegrinds.com/2007/09/06/digg-style-pagination-in-django/

由于某种原因,我收到此错误:渲染时捕获异常:'is_pagination'

我在模板中使用此模板标记,如下所示:

{% load digg_paginator %}
{% digg_paginator %}

其中 digg_paginator.py 位于我的 app/templatetags 文件夹中,包含的模板上下文 digg_paginator.html 位于我的 app/templates 文件夹中。需要分页的查询集称为“目的地”。如果我只指定 {% digg_paginator %},它如何知道要分页的变量?我觉得我在这里遗漏了一些重要的东西,或者只是简单的愚蠢:P

请有人帮忙,或者向我解释一下应该如何做。

It looks like this template tag works like a charm for most people:

http://blog.localkinegrinds.com/2007/09/06/digg-style-pagination-in-django/

For some reason I get this error: Caught an exception while rendering: 'is_paginated'

I use this template tag in my template like so:

{% load digg_paginator %}
{% digg_paginator %}

Where digg_paginator.py is in my app/templatetags folder and the included template context digg_paginator.html is in my app/templates folder. The queryset that needs pagination is called 'destinations'. If i just specify {% digg_paginator %}, how does it know what variable to paginate? I feel I am missing something important here or just plain stupid :P

Someone please help, or explain to me how this should be done.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

写给空气的情书 2024-09-02 21:28:50

如果您阅读该模板标签的描述,它会说它是为了使用内置的 通用视图

<块引用>

与 PaginatorTag 一样,此标记是一个非常基本的包含标记,它构建在使用通用 object_list 视图分页时已在上下文中设置的变量上。创建了一些额外的上下文变量...

is_pagination 变量由通用视图设置(查看前面链接的 django 文档的 template_context 部分)。

已更新

要使用该分页器,您需要修改视图以使用 Django 中的通用视图功能。由于您尚未提供视图或网址的代码,我无法为您提供有关如何更改代码的任何具体建议。

如果您按照 Django 教程,在 第 4 部分(最后一节)他们将引导您将前面几节中构建的简单应用程序修改为使用通用视图。使用通用视图的优点在于它可以自动处理大部分令人脑残的index()和detail()视图代码:

<块引用>

这些视图代表了基本 Web 开发的常见情况:根据 URL 中传递的参数从数据库获取数据,加载模板并返回呈现的模板。因为这种情况很常见,Django 提供了一个快捷方式,称为“通用视图”系统。

If you read the description of that template tag, it says it is built to paginate using the built-in generic views:

Like the PaginatorTag, this tag is a very basic inclusion tag that builds on the variables already set on the context when paginating with the generic object_list view. There are a few additional context variables created...

The is_paginated variable is setup by the generic view (look at the template_context section of the django documentation linked earlier).

Updated

To use that paginator, you will need to modify your view to use the generic view functionality in Django. Since you haven't provided the code for your views or urls I can't give you any concrete suggestions on how to change your code.

If you follow through the Django Tutorial, in part 4 (the last section) they walk you through modifying the simple application that you built in the previous sections to use generic views. The strength of using generic views is that it automatically handles most of the brain dead index() and detail() view code:

These views represent a common case of basic Web development: getting data from the database according to a parameter passed in the URL, loading a template and returning the rendered template. Because this is so common, Django provides a shortcut, called the "generic views" system.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文