我有一个模型:
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 %}.
我想要一个与提到的那个模板一样通用的模板,但是要打印出“ 精彩的鸡蛋 ”。
[由于我不确定真正的问题在哪里,所以为了我们所有人都能看清楚,我加粗了它 :) ]
我知道如何以本身丑陋的方式获取选择项的冗长版本:
{{ form.meal.field.choices.1.1 }}
真正的痛点在于我需要获取所选的选项,而我想到的唯一方法是遍历选择并检查{% ifequals currentChoice.0 choiceField.data %}
,这甚至更加丑陋。
是否可以轻松完成?还是需要一些模板标签编程?这不应该已经在Django中可用了吗?