У мене є модель:
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 яйця"), тому що він використовує
{% 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?