Django 用户错误:"AttributeError: 'User'对象没有属性“get”; ”
我 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'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在
views.py
的第 23 行,您将request.user
作为第一个参数传递给LocationForm
的实例化。第一个参数应为
request.POST
,除非您的表单已覆盖__init__()
方法。On line 23 of your
views.py
you are passingrequest.user
as the first parameter to the instantiation ofLocationForm
.The first parameter should be
request.POST
unless your form has overridden the__init__()
method.