Saya punya model:
from django.db import models
CHOICES = (
('s', 'Glorious spam'),
('e', 'Fabulous eggs'),
)
class MealOrder(models.Model):
meal = models.CharField(max_length=8, choices=CHOICES)
Saya punya formulir:
from django.forms import ModelForm
class MealOrderForm(ModelForm):
class Meta:
model = MealOrder
Dan saya ingin menggunakan formtools.preview. Template default mencetak versi pendek dari pilihan ('e' bukannya 'Fabulous eggs'), karena itu digunakan
{% for field in form %}
<tr>
<th>{{ field.label }}:</th>
<td>{{ field.data }}</td>
</tr>
{% endfor %}.
Saya ingin template yang umum seperti yang disebutkan, tetapi mencetak 'Telur yang luar biasa' sebagai gantinya.
[Karena saya ragu di mana pertanyaan sebenarnya, saya berani untuk kita semua :)]
Saya tahu cara mendapatkan versi verbose dari suatu pilihan dengan cara yang jelek:
{{ form.meal.field.choices.1.1 }}
Rasa sakit yang sebenarnya adalah saya harus mendapatkan pilihan yang dipilih, dan satu-satunya cara datang ke pikiran saya adalah beralih melalui pilihan dan memeriksa {% ifequals currentChoice.0 choiceField.data %}
, yang bahkan lebih buruk.
Bisakah itu dilakukan dengan mudah? Atau perlu beberapa pemrograman template-tag? Bukankah seharusnya itu sudah tersedia di Django?