Python 如何在app engine上创建多选表单字段
我正在app Engine上构建一个应用程序,我想创建一个具有多项选择的表单字段。Python 如何在app engine上创建多选表单字段,python,google-app-engine,django-forms,Python,Google App Engine,Django Forms,我正在app Engine上构建一个应用程序,我想创建一个具有多项选择的表单字段。 这是我的表单(它使用appenginesdk(django 0.96)中的django.newforms): 问题是:当我提交表单(选择了一个或多个值)时,出现了以下验证错误:“输入值列表。” 我不明白为什么。。。在此问题上提供一些帮助将不胜感激。 谢谢!:) 编辑(额外信息): 以下是表单验证代码: form = forms.KeywordForm(data=self.request.POST) if fo
这是我的表单(它使用appenginesdk(django 0.96)中的django.newforms): 问题是:当我提交表单(选择了一个或多个值)时,出现了以下验证错误:“输入值列表。” 我不明白为什么。。。在此问题上提供一些帮助将不胜感激。
谢谢!:) 编辑(额外信息):
以下是表单验证代码:
form = forms.KeywordForm(data=self.request.POST)
if form.is_valid():
...
args = self.request.arguments()
data = {}
for i in args:
data[i] = self.request.get_all(i)
form = forms.KeywordForm(data=data)
if form.is_valid():
[...]
self.request.POST:
UnicodeMultiDict([(u'keyword', u'test'), (u'server[]', u'1'), (u'server[]', u'2')])
我找到了解决办法 问题是self.request.POST dictionnary提供给我表单的构造函数。
multipleChiceField.clean()函数不喜欢它的格式,所以我对它进行了转换 以下是工作验证代码:
form = forms.KeywordForm(data=self.request.POST)
if form.is_valid():
...
args = self.request.arguments()
data = {}
for i in args:
data[i] = self.request.get_all(i)
form = forms.KeywordForm(data=data)
if form.is_valid():
[...]
您只需传递self.request.POST.items()。非常感谢Nick,它更加优雅@尼克·约翰逊我也有同样的问题。请你帮忙好吗?这是我的表格thanks@NickJohnson我也试过了
form=IdentityForm(data=self.request.POST.items())
但出现另一个错误<代码>属性错误:“列表”对象没有属性“获取”