Modelos do Django: faça um loop e imprima todas as propriedades disponíveis de um objeto?
Eu tenho um objeto de banco de dados chamadomanor_stats
, com cerca de 30 campos. Para a maioria das linhas, a maioria desses campos será nula.
No meu modelo, gostaria de percorrer todos os campos da linha e imprimir informações apenas dos campos que não são nulos.
Por exemplo, há um campo chamado "nome": eu gostaria de imprimir<li>Name: {{ manor_stats.name }}</li>
no modelo APENAS para os objetos em que o campo não é nulo. Idealmente, eu gostaria de extrair "Name:" de algum lugar automaticamente também, em vez de especificá-lo.
Eu sei que eu poderia usar{% if manor_stats.name %}
para verificar se cada campo é nulo, mas não quero fazer isso 30 vezes para todos os campos.
Aqui está o que eu tenho no 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))
E, em seguida, em place.html, gostaria de ter algo que funcione aproximadamente dessa maneira (pseudocódigo, com ??? indicando os bits que não sei fazer):
{% 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 %}
Espero que faça sentido ...