Шаблоны Django: подробная версия выбора
У меня есть модель:
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 eggs»), потому что он использует
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
I'd like a template as general as the mentioned, but printing 'Fabulous eggs' instead.
[as I had doubts where's the real question, I bolded it for all of us :)]
Я знаю, как получить подробную версию выбора таким образом, который сам по себе уродлив:
{{ form.meal.field.choices.1.1 }}
Настоящая боль в том, что мне нужно сделать выбранный выбор, и единственный способ, который приходит мне в голову, это перебирать выбор и проверять{% ifequals currentChoice.0 choiceField.data %}
, что еще страшнее.
Это можно сделать легко? Или нужно какое-то программирование тегов-шаблонов? Разве это не доступно уже в django?