У меня есть объект базы данных с именем manor_stats
, около 30 полей. Для большинства строк большинство этих полей будут нулевыми.
В моем шаблоне я хотел бы перебрать все поля в строке и вывести информацию только для тех полей, которые не равны NULL.
Например, есть поле с именем «name»: я хотел бы напечатать <li>Name: {{ manor_stats.name }}</li>
в шаблоне ТОЛЬКО для тех объектов, где поле не является нулевым. В идеале, я бы тоже хотел автоматически извлекать «Имя:» откуда-то, а не указывать его.
Я знаю, что могу использовать {% if manor_stats.name %}
, чтобы проверить, является ли каждое поле пустым, но я не хочу делать это 30 раз для всех полей.
Вот что у меня есть в views.py:
.
manor_stats = Manors.objects.get(idx=id)
return render_to_response('place.html', { 'place' : place, 'manor_stats' : manor_stats }, context_instance = RequestContext(request))
А затем в place.html я хотел бы иметь что-то, что работает примерно так (псевдокод, где ??? указывает биты, которые я не знаю как делать):
{% if manor_stats %}
<ul>
{% for manor_stats.property??? in manor_stats %}
{% if manor_stats.property %}
<li>{{ manor_stats.property.field_name??? }} {{ manor_stats.property.value??? }}</li>
{% endif %}
{% endfor %
{% endif %}
Надеюсь, что это имеет смысл ...