Error with Django User : "AttributeError: 'User' object has no attribute 'get' "
I've just started Django and Python 50 hours ago ;-) so this might be an easy one but I am stuck.
I am using similar 'create' view with similar Form implementation in my project with no problem. In this case, I get the above mentionned error.
I am using Pinax...
2 from django.shortcuts import render_to_response, get_object_or_404
3 from django.template import RequestContext
4 from django.http import HttpResponseRedirect
5 from django.core.urlresolvers import reverse
6 from django.contrib.auth.models import User
7 from django.contrib.auth.decorators import login_required
8 from django.utils.translation import ugettext_lazy as _
9
10 from django.conf import settings
11
12 if "notification" in settings.INSTALLED_APPS:
13 from notification import models as notification
14 else:
15 notification = None
16
17 from location.models import Location
18 from location.forms import LocationForm, LocationUpdateForm
19
20
21 @login_required
22 def create(request, form_class=LocationForm, template_name="location/create.html"):
23 location_form = form_class(request.user, request.POST or None)
24
25
26
27 if location_form.is_valid():
28 location = location_form.save(commit=False)
29 location.creator = request.user
30 location.save()
31 return HttpResponseRedirect(location.get_absolute_url())
32
33 return render_to_response(template_name, {
34 "location_form": location_form,
35 }, context_instance=RequestContext(request))
Traceback (most recent call last):
File "/Users/philgo20/code/LeadMiner/django/core/servers/basehttp.py", line 636, in __call__
File "/Users/philgo20/code/LeadMiner/django/core/handlers/wsgi.py", line 241, in __call__
File "/Users/philgo20/code/LeadMiner/django/core/handlers/base.py", line 134, in get_response
File "/Users/philgo20/code/LeadMiner/django/core/handlers/base.py", line 154, in handle_uncaught_exception
File "/Users/philgo20/code/LeadMiner/django/core/handlers/base.py", line 92, 开发者_StackOverflow中文版in get_response
File "/Users/philgo20/python/django/trunk/django/contrib/auth/decorators.py", line 78, in __call__
return self.view_func(request, *args, **kwargs)
File "/Users/philgo20/code/jezam_kms/apps/location/views.py", line 27, in create
if location_form.is_valid():
File "/Users/philgo20/code/LeadMiner/django/forms/forms.py", line 120, in is_valid
File "/Users/philgo20/code/LeadMiner/django/forms/forms.py", line 111, in _get_errors
File "/Users/philgo20/code/LeadMiner/django/forms/forms.py", line 234, in full_clean
File "/Users/philgo20/code/LeadMiner/django/forms/widgets.py", line 170, in value_from_datadict
AttributeError: 'User' object has no attribute 'get'
On line 23 of your views.py you are passing request.user as the first parameter to the instantiation of LocationForm.
The first parameter should be request.POST unless your form has overridden the __init__() method.
加载中,请稍侯......
精彩评论