Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AttributeError: 'list' object has no attribute 'get'

I am using django form. When I submit form, I get AttributeError: 'list' object has no attribute 'get' Any idea? thanks

def post(self, id=None):
    user = self.auth.get_user_by_session()
    form = IForm(self.request.POST.items())

    if form.is_valid():

UPDATE 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 = '[email protected]'
        k.put()
        self.redirect(webapp2.uri_for('list'))
        return self.render_template('test_add.html', **template_values)

UPDATE 1

If I use form = IForm(self.request.POST)

then getting > users Enter a list of values.

Form

class IForm(forms.Form):
 email = forms.EmailField(required=False)
 users = forms.MultipleChoiceField(required=False, choices=get_my_choices())

I added required=False. then don't know why getting error


1 Answers

  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

tells your that data is a list in this case and of course a list does not have any get() method. the issue is here:

form = IForm(self.request.POST.items())

try to log the results of self.request.POST.items()

edit: use self.request.POST.items() returns a list of tuples. your forms.Form expects a dictionary. use self.request.POST instead

like image 58
aschmid00 Avatar answered Feb 26 '26 12:02

aschmid00