3

我刚刚在 50 小时前开始使用 Django 和 Python ;-) 所以这可能很容易,但我被卡住了。

我在我的项目中使用类似的“创建”视图和类似的表单实现,没有问题。在这种情况下,我得到了上面提到的错误。

我正在使用 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'
4

1 回答 1

9

在您的第 23 行,您views.pyrequest.user作为第一个参数传递给LocationForm.

第一个参数应该是request.POST除非您的表单已覆盖该__init__()方法。

于 2009-12-16T18:23:33.613 回答