TIM*_*MEX 3 html python django templates
{% gen_aws "hello" %}
Run Code Online (Sandbox Code Playgroud)
在我的文件中,我这样做:
#I want to add "goodbye" to every word passed to this tag.
@register.tag(name="gen_aws")
def gen_aws(s):
return s + "goodbye"
Run Code Online (Sandbox Code Playgroud)
.py文件很好......我包括一切都很好.我有其他模板"过滤器"在那里工作正常.但后来我在那个文件中添加了这个,这个模板标签不起作用.
您对"不起作用"的描述不是很准确(确切地说它不存在).但我猜你得到一个错误,因为找不到标签.
该文件明确指出,你需要一个"templatetags"模块中您的应用程序,包含"mytags"的子模块,例如.然后,您必须在要使用它们的每个模板中包含这些标记.你可以这样做{% load mytags %}.
然后"mytags"模块包含您的"gen_aws"标签.
编辑:错误"gen_aws()正好采用1个参数(2给定)"因为普通标签可以以非常自定义的方式解析其参数.因此,他们得到参数"parser"和"token".在你的情况下,一个所谓的简单标记就足够了 - 然后Django自动为你解析参数并将它们作为Python值传递.因此,只需更换@register.tag的@register.simple_tag.
"no attribute 'must_be_first'"错误的另一个可能原因是您忘记继承django.template.Node您的课程.(因为这几乎就是这句话的谷歌结果,我想我会在这里添加这个,为下一个人节省几分钟.)