un3*_*33k 1 tags django templates django-templates
name class一个id,一个first和一个last属性
在我的view.py中,我从数据库中获取一个名称对象并将其传递给index.html模板.
在我templagetags/my_tags.py,我有一个过滤器my_private_tag(value, arg),取值和arg.它将arg附加到值并返回结果.
def my_private_tag(value, arg):
return value + ' ' + arg
Run Code Online (Sandbox Code Playgroud)
在我的index.html标记中,我需要执行以下操作.
{% if name %}
# to display
# John says hello
{{name.first | my_private_tag:"says hello"}
# Johns student id = id_value
{{name.first | my_private_tag:"????????"}
# Johns student id = id_value, lastname = lastname_value
{{name.first | my_private_tag:"????????"}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
哪里:
id_value = name.id & lastname_value = name.last
Run Code Online (Sandbox Code Playgroud)
请填写???????? 如果你可以的话.
而不是为此实现自己的过滤器.为什么不这样做:
{{name.first }} says hello
{{name.first }}'s student id = {{ name.id }}
Run Code Online (Sandbox Code Playgroud)
它更具可读性.这就是你应该如何使用模板.
如果你仍然想为此使用自定义过滤器,你可以传递这样的变量:
{{name.first|my_private_tag:name.id}}
Run Code Online (Sandbox Code Playgroud)