Python 如何在Django模板中进行解析?
假设我将其传递给Django模板。现在,我想显示宽度为200的标题。我如何才能做到这一点,而不是用暴力的方式:Python 如何在Django模板中进行解析?,python,django,templates,list,dictionary,Python,Django,Templates,List,Dictionary,假设我将其传递给Django模板。现在,我想显示宽度为200的标题。我如何才能做到这一点,而不是用暴力的方式: post = { sizes: [ { w:100, title="hello"}, {w:200, title="bye"} ] } 我想用解析的方法来做。一个简洁的方法是使用过滤器模板标签 {{ post.sizes.1.title }} 这应该放在模板中的templatetags包中,比如postfilters.py,和{%loadpostfilters%} 当然,您也可以修
post = { sizes: [ { w:100, title="hello"}, {w:200, title="bye"} ] }
我想用解析的方法来做。一个简洁的方法是使用过滤器模板标签
{{ post.sizes.1.title }}
这应该放在模板中的templatetags
包中,比如postfilters.py
,和{%loadpostfilters%}
当然,您也可以修改它以提供正确的大小
对象,因此您可以使用post | detailsofwidth:200作为postdetails%}{{postdetails.something},{{postdetails.title}{%endwith%}
from django.template import Library
register = Library()
@register.filter('titleofwidth')
def titleofwidth(post, width):
"""
Get the title of a given width of a post.
Sample usage: {{ post|titleofwidth:200 }}
"""
for i in post['sizes']:
if i['w'] == width:
return i['title']
return None
{% for i in post.sizes %}
{% if i.w == 200 %}{{ i.title }}{% endif %}
{% endfor %}