gpt4 book ai didi

python - 如何在应用程序引擎上制作多选表单字段

转载 作者:行者123 更新时间:2023-12-01 06:17:56 26 4
gpt4 key购买 nike

我正在 App Engine 上构建一个应用程序,我想创建一个具有多个选择的表单字段。
这是我的表单(它使用应用程序引擎 sdk (django 0.96) 中的 django.newforms):

from google.appengine.ext.db import djangoforms
from django import newforms

class KeywordForm(djangoforms.ModelForm):
class Meta:
model = Keyword
exclude = ['site', 'created_at', 'last_update']

choices = [ (1, 'value1'), (2, 'value2'), (3, 'value3'), (4, 'value4') ]
server = newforms.fields.MultipleChoiceField(choices = choices)

问题是:当我提交表单(选择了一个或多个值)时,出现此验证错误:“输入值列表。

我不明白为什么......对此问题的一些帮助将非常感激。
谢谢 ! :)

编辑(额外信息):
这是表单验证代码:

 form = forms.KeywordForm(data=self.request.POST)
if form.is_valid():
...

self 请求.POST:

UnicodeMultiDict([(u'keyword', u'test'), (u'server[]', u'1'), (u'server[]', u'2')])

最佳答案

我找到了解决办法!

问题是向我的表单构造函数提供的 self.request.POST 字典。
MultipleChoiceField.clean() 函数无法识别它的格式,因此我对其进行了转换。

这是有效的验证代码:

 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():
[...]

关于python - 如何在应用程序引擎上制作多选表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2208207/

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