Mam modelkę:
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 wybraną skróconą wersję („e” zamiast „Bajeczne jajka”), ponieważ używa
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
Chciałbym mieć szablon tak ogólny, jak wspomniany, ale zamiast tego wydrukować „Bajeczne jajka”.
[ponieważ miałem wątpliwości, gdzie jest prawdziwe pytanie, pogrubiłem je za nas wszystkich :)]
Wiem, jak uzyskać pełną wersję wyboru w sposób, który sam w sobie jest brzydki:
{{ form.meal.field.choices.1.1 }}
Prawdziwym bólem jest to, że muszę dokonać wyboru, a jedyny sposób, który przychodzi mi do głowy, to iterowanie przez wybory i sprawdzanie {% ifequals currentChoice.0 choiceField.data %}
, co jest jeszcze brzydsze.
Czy można to łatwo zrobić? A może potrzebuje trochę programowania szablonów? Czy nie powinno to już być dostępne w django?