Отличный способ сделать это с помощью тега шаблона фильтра.
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
Это должно быть в пакете templatetags
, скажем, postfilters.py
и {% load postfilters %}
в вашем шаблоне.
Естественно, вы также можете изменить это, чтобы дать вам правильный sizes
объект, чтобы вы могли сделать {% with post|detailsofwidth:200 as postdetails %}{{ postdetails.something }}, {{ postdetails.title }}{% endwith %}
.