为什么django投票模板标签不起作用?

时间:2012-05-24 04:08:00

标签: python django django-templates django-voting

我已安装了Django投票应用found here,但我无法让模板代码生效。例如,根据我的阅读,只需运行

{% 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中的模板上下文处理器列表中。

我错过了什么吗? According to the readme,只需确保模块存在于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

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

from django import template
register = template.Library()

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

谢谢,

ParagonRG

1 个答案:

答案 0 :(得分:1)

模板标签与模板上下文处理器不同。你有loaded the template tag吗?

{% load voting_tags %} 

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