私はモデルを持っています:
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」)を印刷します。
{% 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で利用可能ではないのですか?