gpt4 book ai didi

python - 在 Django 中实现多个(复选框)选择 + "Other"小部件

转载 作者:行者123 更新时间:2023-11-28 18:54:05 28 4
gpt4 key购买 nike

我需要用一组复选框的结果和一个“其他”[请指定] 选项填充一个 CharField(对于下面的表单状态,该值将是“选项-a,其他”)。表单基本上看起来像:

[x] option a
[ ] option b
[x] other

If you selected "other", please specify. [__________]

我已经通过实现 MultipleChoiceField 的子类成功地完成了大部分工作:

class CommaStringMultipleChoiceField(MultipleChoiceField):
def to_python(self, value):
return [val.rstrip().lstrip() for val in value.split(',')]

def clean(self, value):
return ",".join([val.rstrip().lstrip() for val in value])

在我的表单类中,我将该字段分配给我的表单字段:

TYPE_CHOICES = [
(u'option-a',u"Option A"),
(u'option-b',u"Option B"),
(u'other', u"Other"),
]

type = CommaStringMultipleChoiceField(
choices=TYPE_CHOICES,
widget=CheckboxSelectMultiple
)

这会正确呈现表单,并调用我的自定义 clean() 方法,但是当我保存表单时出现验证错误:

Value u'education,other' is not a valid choice.

我试过添加自定义验证器,但到目前为止没有任何区别。缺少什么?

最佳答案

由于该错误只会在您将模型实例保存到表单之外时发生,因此请检查“Value u'education,other' is not a valid choice”错误是否来自模型验证表单验证。如果您在模型字段上还设置了一个 choices,而您确实想在其中存储一个自由格式的字符串,则可能会发生这种情况。

关于python - 在 Django 中实现多个(复选框)选择 + "Other"小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6743022/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com