Шаблоны Django намеренно ограничены, так что написание бизнес-логики сложно (или почти невозможно). Обычно такую логику выполняют на уровне модели или вида.
def person_details(request, pk):
person = get_object_or_404(Person, id=pk)
person_data = {
f.verbose_name: getattr(person, f.name, None)
for f in person._meta.get_fields()
}
return render(request, 'template.html', {'person': person, 'person_data': person_data })
, а затем отрендерить его с помощью:
{% for ky, val in person_data.items %}
<div class="col-4 form-group">
<p><strong>{{ ky }}:</strong> {{ val }}</p>
</div>
{% endfor %}
Однако рекомендуется не , чтобы выполнить эту сериализацию самостоятельно, но использовать другие методы сериализации, такие как , перечисленные в этом ответе .