AttributeError:'list'对象没有属性'get'

时间:2012-03-17 07:48:55

标签: google-app-engine django-forms

我正在使用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。然后不知道为什么会得到错误

1 个答案:

答案 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