【发布时间】:2011-06-22 11:20:18
【问题描述】:
我有一个允许用户选择多个选项的 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 只能接受一个选择,因为我的表单永远不会验证并且我收到如下错误:
Value u"[u'visa']" 不是一个有效的选择。
而且它看起来确实是一个有效的选择。
我已经看到 some people 在模型端使用 ManyToManyField 来实现这一点(我希望如此),但仅为信用卡类型的静态列表构建模型似乎有点过头了。
那么:我应该使用特定的模型字段类型或不同的表单配置来支持从预定义的选项列表中进行多项选择吗?
谢谢。
【问题讨论】:
标签: django django-models django-forms