【发布时间】:2016-04-06 13:55:21
【问题描述】:
我正在使用一个小部件框架,不幸的是,该框架将一些输入移到了 DOM 中的 <form> 标记之外。因此,我必须创建隐藏的输入,然后使用 javascript 设置它们以使它们在 request.POST 中传递。
问题是,虽然我使用了"Yes"、"No" 和"Unknown" 值as per the docs here,但它们在cleaned_data 中被转换为None。以下是从相关视图中的几个打印函数中获取的示例:
request.POST.urlencode()
n_var=Yes&n_short=Unknown&p_widget=Unknown&n_long=Yes&verbatim=Blah ...
form.cleaned_data
{'n_var': None, 'n_short': None, 'p_widget': None, 'n_long': None, 'verbatim': 'Blah' ...
表单是ModelForm,并保存不是NullBooleanField 的字段。摘录:
class MyForm(forms.ModelForm):
n_var = forms.NullBooleanField(required=False)
n_short = forms.NullBooleanField(required=False)
p_widget = forms.NullBooleanField(required=False)
n_long = forms.NullBooleanField(required=False)
verbatim = forms.CharField(required=False, max_length=32) #saves fine
发生了什么事?如何手动将 NullBoolean 数据导入表单?
【问题讨论】:
标签: javascript django forms