我的模型字段显示'0'不是有效选项?

2 投票
1 回答
1936 浏览
提问于 2025-04-16 12:07
FOOBAR = (
    (0, 'foo'),
    (1, 'bar'),
)

class Foobaz(models.Model):
    type = models.CharField(max_length=1, choices=FOOBAR, \
                                       verbose_name=_('foobar type'))

class FoobazForm(forms.ModelForm):
    class Meta:
    model = Foobaz
        fields = ('type')

在视图中,我写了这行代码 foo_form = FoobazForm(request.POST)。当我调用 foo_form.is_valid() 时,它给我返回了一个验证错误,提示 u'0' 不是一个有效的选择。我哪里做错了呢?

1 个回答

2

我对 django 了解不多,只知道它可能是这十年来最难听的包名,所以这只是我的猜测:

用户输入的是字符,而不是数字,所以你应该使用:

FOOBAR = (
    ('0', 'foo'),
    ('1', 'bar'),
    )

更新 谷歌是我们的好朋友:这里有一些看起来相关的文档

撰写回答