Moo*_*ech 3 python django django-templates
我的自定义标签:
# app/templatetags/ctags.py
def getgenre():
genre = ["Test1", "Test2"]
return genre
register.simple_tag(getgenre)
Run Code Online (Sandbox Code Playgroud)
我的HTML:
# app/templates/base.html
{% load ctags %}
<!-- {% getgenre %} -->
{% for genre in getgenre %}
<li>{{genre}}</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这为我呈现了一个空白页面.如果我取消注释{%getgenre%},则django按预期呈现["Test1","Test2"].我已经尝试了无数种设置我的标签(包括非simple_tag方式)的变化无济于事.我无法迭代我的一个自定义标记返回的任何值.
我错过了一些基本的东西吗?
你应该使用assignment_tag而不是simple_tag:
@register.assignment_tag
def getgenre():
genre = ["Test1", "Test2"]
return genre
Run Code Online (Sandbox Code Playgroud)
然后在模板中:
{% load ctags %}
{% getgenre as genre_list %}
{% for genre in genre_list %}
<li>{{genre}}</li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1414 次 |
| 最近记录: |