Szablony Django: pełna wersja wyboru
Mam model:
from django.db import models
CHOICES = (
('s', 'Glorious spam'),
('e', 'Fabulous eggs'),
)
class MealOrder(models.Model):
meal = models.CharField(max_length=8, choices=CHOICES)
Mam formularz:
from django.forms import ModelForm
class MealOrderForm(ModelForm):
class Meta:
model = MealOrder
I chcę użyć formtools.preview. Domyślny szablon drukuje krótką wersję wyboru („e” zamiast „Fabulous eggs”), ponieważ używa
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
Chciałbym szablon tak ogólny, jak wspomniany, ale zamiast tego drukuje „fantastyczne jaja”.
[jak miałem wątpliwości, gdzie jest prawdziwe pytanie, śmiałem to dla nas wszystkich :)]
Wiem, jak uzyskać pełną wersję wyboru w sposób, który sam jest brzydki:
{{ form.meal.field.choices.1.1 }}
Prawdziwym bólem jest to, że muszę uzyskać wybrany wybór, a jedynym sposobem przychodzenia do mojego umysłu jest iterowanie poprzez wybory i sprawdzanie{% ifequals currentChoice.0 choiceField.data %}
, co jest nawet brzydsze.
Czy można to łatwo zrobić? Lub potrzebuje trochę programowania tagów szablonów? Czy nie powinno to być już dostępne w django?