django - Django 用户错误 : "AttributeError: ' User' object has no attribute 'get' "

标签 django django-forms pinax

我 50 小时前刚刚开始使用 Django 和 Python ;-) 所以这可能很简单,但我陷入了困境。

我在我的项目中使用类似的“创建” View 和类似的表单实现,没有任何问题。在这种情况下,我收到上述错误。

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

最佳答案

views.py 的第 23 行,您将 request.user 作为第一个参数传递给 LocationForm 的实例化。

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

关于django - Django 用户错误 : "AttributeError: ' User' object has no attribute 'get' ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1916593/

相关文章:

python - 如何在运行 Django 测试之前加载测试 yaml 文件?

python - 如何摆脱 Django Form 的 RadioSelect 生成的虚假选择

python - 在 django 中覆盖 ErrorList 类时出现奇怪的 UTF-8 问题

python - Django-Pinax : How do you use a pinax app apart from what you get with a pinax base project?

django - 在 Django Web 应用程序中,如何为用户提供自己的子域?

ajax - Django:在 ajax 调用中需要 login_required

python - 为什么在 apache 上找不到 python 模块

django - 如何使用 PostgreSQL DB 在 Django 中使用 ArrayField?

django - Django表单方法的副作用 `is_valid()` : intance updated?

python - 我怎样才能渲染这个 Django 模板?