哪个Django模型字段与CheckboxSelectMultiple表单字段一起使用?

时间:2011-02-07 00:02:52

标签: django django-models django-forms

我有一个django表单,允许用户选择多个选项:

CARDS = (
    ("visa", "Visa"),
    ("mastercard", "MasterCard"),
)

class PaymentForm(forms.ModelForm):
    credit_cards = forms.MultipleChoiceField(choices=CARDS, widget=forms.CheckboxSelectMultiple)
    # ... etc.

我将表单的关联模型设置为:

class Payment(models.Model):
    user = models.OneToOneField(User)
    credit_cards = models.CharField(choices=CARDS, max_length=100)
    # ... etc.

但我认为带有choices参数的CharField只能接受一个选项,因为我的表单永远不会验证,我得到的错误如下:

价值u“[u'visa']”不是一个有效的选择。

这看起来确实是一个有效的选择。

我已经看到some people在模型方面使用了ManyToManyField(这是我期望的),但为静态信用卡类型列表构建模型似乎有点过分。

那么:我是否应该使用特定的模型字段类型或不同的表单配置来支持预定义选项列表中的多个选择?

感谢。

1 个答案:

答案 0 :(得分:2)