嗨,我有一个Django表格:
BAR_CHOICES = (
('1', 'Cheers'),
('2', 'The Blue Oyster'),
...
)
class ProjectInfoForm(forms.Form):
foo = forms.ChoiceField(
CHOICES = BAR_CHOICES,
)
...
当然,当我将此数据保存到模型时,值将作为整数存储在db中。现在,当我从保存的数据中获取这些值时,它们就是整数。获取与之关联的选择字符串的最佳方法是什么。我应该将BAR_CHOICES导入模板吗?
答案 0 :(得分:7)
Django提供了一种直接获取相关字符串的方法。看看here
<强>更新强>
示例:
BAR_CHOICES = (
('1', 'Cheers'),
('2', 'The Blue Oyster'),
...
)
class Project(models.Model):
foo = models.PositiveIntegerField(choices=BAR_CHOICES)
...
在模板中,您只需执行{{project.get_foo_display}}
答案 1 :(得分:2)
如果要在模板中呈现选项,可以迭代form.field.choices
。
如果您想要在模板中使用所选值的字符串表示,那么您将不得不在视图或表单中编写可以获取该信息的内容。
您可以在表单中模仿get_FOO_display
..
def get_foo_display(self):
return dict(BAR_CHOICES)[self.foo]