0

我已经安装了在这里找到的 Django-voting 应用程序,但我无法让模板标签工作。例如,从我读过的内容来看,只需运行

{% load voting_tags %}
{% score_for_object object_name as score %}

应该工作,但它与一个简单的错误Invalid block tag: 'score_for_object'

我已经下载了该应用程序并运行 setup.py 并通过在 Django Python shell 中投票来验证它是否已安装。我还在已安装应用程序列表中添加了“投票”,并将“投票”文件夹移动到我的项目中。我还尝试"voting.templatetags.voting_tags",在 settings.py 中添加到我的模板上下文处理器列表中。

我错过了什么吗?根据自述文件,只需确保模块存在于 Python 路径上(我相信使用 setup.py 提供的安装它),将其添加到 installed_apps 并运行syncdb. 任何帮助是极大的赞赏。

编辑:我试图{% load voting_tags %}在我的模板中使用该命令。请注意,投票模块中标签的位置是voting/templatetags/voting_tags.py。该应用程序现在给了我一个错误:

'voting_tags.py' is not a valid tag library: Template library voting_tags.py not 
found, tried django.templatetags.voting_tags.py, 
   django.contrib.staticfiles.templatetags.voting_tags.py,voting.templatetags.voting_tags.py,
django.contrib.admin.templatetags.voting_tags.py

请注意,它实际上正在尝试正确的目录,即 vote.templatetags.voting_tags.py,但它显然没有被注册为有效。它确实包含Django 文档中特定的所需代码,即:

from django import template
register = template.Library()

尽管如此,我没有运气。为什么标签库可能不被视为有效的标签库?在我看来,它要么缺乏正确的代码来使其成为标签库(如上所示,它确实拥有),要么存在某种路径问题,voting.templatetags.voting_tags.py不知何故根本找不到文件。任何见解都会对我有很大帮助。

谢谢,

典范RG

4

1 回答 1

1

模板标签不同于模板上下文处理器。你加载了模板标签吗?

{% load voting_tags %} 

请注意,这{% load voting_tags.py %}也是不正确的。

于 2012-05-24T05:01:24.523 回答