views:

423

answers:

2

Hi, 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, 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'
+3  A: 

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.

Van Gale
Wasn't over ridding that one. Duh. Thanks ;-)
PhilGo20