我正在使用django表单。当我提交表格时,我得到AttributeError: 'list' object has no attribute 'get'
任何想法?感谢
def post(self, id=None):
user = self.auth.get_user_by_session()
form = IForm(self.request.POST.items())
if form.is_valid():
更新2
def post(self, id=None):
user = self.auth.get_user_by_session()
form = IForm(self.request.POST.items())
if form.is_valid():
#I(**form.cleaned_data).put()
k = I()
k.email = 'test@test.com'
k.put()
self.redirect(webapp2.uri_for('list'))
return self.render_template('test_add.html', **template_values)
更新1
如果我使用form = IForm(self.request.POST)
然后获取> users
Enter a list of values.
表格
class IForm(forms.Form):
email = forms.EmailField(required=False)
users = forms.MultipleChoiceField(required=False, choices=get_my_choices())
我添加了required=False
。然后不知道为什么会得到错误
答案 0 :(得分:1)
File "/home/sandhu/projects/google_appengine/lib/django_1_3/django/forms/widgets.py", line 178, in value_from_datadict
return data.get(name, None)
AttributeError: 'list' object has no attribute 'get
告诉你在这种情况下数据是一个列表,当然列表没有任何get()方法。问题出在这里:
form = IForm(self.request.POST.items())
尝试记录self.request.POST.items()
的结果编辑: 使用self.request.POST.items()返回元组列表。你的form.Form需要一本字典。请改用self.request.POST