2

嗨,我有一个 Django 表单:

BAR_CHOICES = (
    ('1', 'Cheers'),
    ('2', 'The Blue Oyster'),
    ...
)

class ProjectInfoForm(forms.Form):
    foo = forms.ChoiceField(
        CHOICES = BAR_CHOICES,
    )
    ...

当然,当我将此数据保存到模型时,这些值将作为整数存储在数据库中。现在,当我从保存的数据中获取这些值时,它们是整数。获取与其关联的选择字符串的最佳方法是什么。我应该将 BAR_CHOICES 导入模板吗?

4

2 回答 2

7

Django 提供了一种直接获取相关字符串的方法。看看这里

更新:

例子:

BAR_CHOICES = (
    ('1', 'Cheers'),
    ('2', 'The Blue Oyster'),
    ...
)

class Project(models.Model):
   foo = models.PositiveIntegerField(choices=BAR_CHOICES)
   ...

在模板中你可以简单地做{{project.get_foo_display}}

于 2012-12-15T01:14:00.070 回答
2

如果要在模板中呈现选择,可以迭代form.field.choices.

如果您想要模板中所选值的字符串表示,您将不得不在您的视图或表单中编写一些可以获取该信息的内容。

你可以模仿get_FOO_display你的形式..

def get_foo_display(self):
    return dict(BAR_CHOICES)[self.foo]
于 2012-12-15T01:26:52.847 回答