Plantillas Django: versión detallada de una elección
Tengo un modelo:
from django.db import models
CHOICES = (
('s', 'Glorious spam'),
('e', 'Fabulous eggs'),
)
class MealOrder(models.Model):
meal = models.CharField(max_length=8, choices=CHOICES)
Tengo un formulario:
from django.forms import ModelForm
class MealOrderForm(ModelForm):
class Meta:
model = MealOrder
Y quiero usar formtools.preview. La plantilla predeterminada imprime la versión corta de la opción ('e' en lugar de 'Huevos fabulosos'), ya que utiliza
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
Me gustaría una plantilla tan general como la mencionada, pero en su lugar, imprimir "Huevos fabulosos".
[ya que tenía dudas en dónde está la pregunta real, la he puesto en negrita para todos nosotros :)]
Sé cómo obtener la versión detallada de una opción de una manera que es en sí misma fea:
{{ form.meal.field.choices.1.1 }}
El verdadero dolor es que necesito obtener la opción seleccionada, y la única forma de que me venga a la mente es mediante la selección y la verificación.{% ifequals currentChoice.0 choiceField.data %}
, que es aún más feo.
¿Se puede hacer fácilmente? ¿O necesita alguna programación de etiquetas de plantilla? ¿No debería estar ya disponible en django?