J'ai un modèle:
from django.db import models
CHOICES = (
('s', 'Glorious spam'),
('e', 'Fabulous eggs'),
)
class MealOrder(models.Model):
meal = models.CharField(max_length=8, choices=CHOICES)
J'ai un formulaire:
from django.forms import ModelForm
class MealOrderForm(ModelForm):
class Meta:
model = MealOrder
Et je veux utiliser formtools.preview. Le modèle par défaut imprime la version courte du choix ('e' au lieu de 'Fabulous eggs'), car il utilise
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
Je voudrais un modèle aussi général que celui mentionné, mais imprimant plutôt des «œufs fabuleux».
[comme j'avais des doutes sur la vraie question, je l'ai mise en gras pour nous tous :)]
Je sais comment obtenir la version verbeuse d'un choix d'une manière qui est elle-même moche:
{{ form.meal.field.choices.1.1 }}
La vraie douleur est que j'ai besoin d'obtenir le choix choisi, et le seul moyen qui me vient à l'esprit est d'itérer les choix et les vérifications {% ifequals currentChoice.0 choiceField.data %}
, ce qui est encore plus laid.
Cela peut-il être fait facilement? Ou cela a-t-il besoin d'une programmation de template-tag? Cela ne devrait-il pas déjà être disponible dans django?