我已安装了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
答案 0 :(得分:1)
模板标签与模板上下文处理器不同。你有loaded the template tag吗?
{% load voting_tags %}
请注意,{% load voting_tags.py %}
也不正确。