基本上,我有一个冒号分隔的变量被传递到我的模板,我想通过循环来显示每个单独的元素。
我希望能够提取这些名字,然后在我的模板中执行逻辑。
如果我可以使用python,我会做一些类似的事情(注意:file_type是我模板中的变量):
file_type = "PDF:DOC:XLS"
for tipe in file_type.split(":"):
if tipe == "PDF":
print "<img src='pdf'/>"
elif tipe == "DOC":
print "<img src='doc'/>"
elif tipe == "XLS":
print "<img src='xls'/>"
else:
print "<img src='unrecognized'/>"
那么基本上,django-templates中有split函数吗?或者有人想出了一个巧妙的方法来做到这一点?我什么都没找到。谢谢!
2条答案
按热度按时间krugob8w1#
这是自定义模板标记或筛选器的作业。如果你发现自己在想“如果我可以在这里使用Python”,这就是你需要一个自定义标签/过滤器的标志。你可以或多或少地使用上面给予的代码,只需要返回值而不是打印它。
cqoc49vn2#
在Django中,split并不是一个过滤器,但是你可以创建它,它会完全按照你的意愿去做。这是你需要做的一个例子;
在views.py
从django.template.defaulttags导入寄存器
在html页面中,使用拆分筛选器,如下所示:
来源:https://gist.github.com/linuxkathirvel/8127c40fdad028bbb79bec24f36eee1c