Tengo un objeto de base de datos llamado manor_stats
, con alrededor de 30 campos. Para la mayoría de las filas, la mayoría de estos campos serán nulos.Plantillas Django: recorre e imprime todas las propiedades disponibles de un objeto?
En mi plantilla, me gustaría recorrer todos los campos de la fila, e imprimir información solo para los campos que no son nulos.
Por ejemplo, hay un campo llamado "nombre": me gustaría imprimir <li>Name: {{ manor_stats.name }}</li>
en la plantilla SÓLO para aquellos objetos donde el campo no es nulo. Idealmente, me gustaría obtener "Nombre:" de algún lugar automáticamente también, en lugar de especificarlo.
Sé que podría usar {% if manor_stats.name %}
para comprobar si cada campo es nulo, pero no quiero hacerlo 30 veces para todos los campos.
Esto es lo que tengo en 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))
Y luego, en place.html, me gustaría tener algo que funciona aproximadamente como este (pseudocódigo, con ??? lo que indica que los bits no sé cómo hacerlo):
{% 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 %}
esperanza que tiene sentido ...
duplicado exacto: http://stackoverflow.com/questions/2170228/django-iterate-over-model- instance-field-names-and-values-in-template –