AttributeError: у объекта 'list' нет атрибута 'get' - PullRequest
3 голосов
/ 17 марта 2012

Я использую форму Джанго.Когда я отправляю форму, я получаю 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 Ответ

1 голос
/ 17 марта 2012
  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 ()

edit: use self.request.POST.items () возвращает списоккортежей.ваши формы. Форма ожидает словарь.используйте вместо себя self.request.POST

...