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”而不是“ Fabricous 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中提供了吗?

回答:

在Django模板中,你可以使用“ get_FOO_display()”方法,该方法将返回该字段的可读别名,其中’FOO’是该字段的名称。

注意:如果标准FormPreview模板没有使用它,那么你始终可以为该表单提供自己的模板,其中将包含{{ form.get_meal_display }}

以上是 Django模板:选择的详细版本 的全部内容, 来源链接: utcz.com/qa/414769.html

回到顶部