У меня есть модель:
from django.db import models
CHOICES = (
('s', 'Glorious spam'),
('e', 'Fabulous eggs'),
)
class MealOrder(models.Model):
meal = models.CharField(max_length=8, choices=CHOICES)
У меня есть форма:
from django.forms import ModelForm
class MealOrderForm(ModelForm):
class Meta:
model = MealOrder
И я хочу использовать formtools.preview. В шаблоне по умолчанию печатается краткая версия выбранного варианта («e» вместо «Fabulous egg»), поскольку в нем используется
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
Я хотел бы иметь такой же общий шаблон, как упомянутый, но вместо этого печатал бы «Сказочные яйца».
[поскольку у меня были сомнения, где настоящий вопрос, я выделил его для всех нас :)]
Я знаю, как получить подробную версию выбора некрасивым способом:
{{ form.meal.field.choices.1.1 }}
Настоящая боль в том, что мне нужно получить выбранный вариант, и единственный способ, который приходит мне в голову, - это перебирать варианты и проверки {% ifequals currentChoice.0 choiceField.data %}
, что еще хуже.
Легко ли это сделать? Или для этого нужно программирование шаблонных тегов? Разве это не должно быть уже доступно в django?