微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

\'WSGIRequest\'对象在django中没有属性\'username\'

如何解决\'WSGIRequest\'对象在django中没有属性\'username\'

|| \'WsgiRequest \'对象没有属性\'username \'  这是我得到的错误。 我经历了与之相关的大多数问题,并做了一些相应的更改。但是还没有解决办法。 在我的settings.py中
TEMPLATE_CONTEXT_PROCESSORS = ( \"django.core.context_processors.debug\",\"django.core.context_processors.i18n\")
TEMPLATE_CONTEXT_PROCESSORS += (
     \'django.core.context_processors.request\',\'django.core.context_processors.debug\',\'django.core.context_processors.i18n\',\'django.core.context_processors.media\',\'django.core.context_processors.static\',\'django.contrib.auth.context_processors.auth\',\'django.contrib.messages.context_processors.messages\',) 
AUTH_PROFILE_MODULE = \"prof.userprofile\"
MIDDLEWARE_CLASSES = (
    \'django.middleware.common.CommonMiddleware\',\'django.contrib.sessions.middleware.SessionMiddleware\',\'django.contrib.auth.middleware.AuthenticationMiddleware\',\'django.middleware.doc.XViewMiddleware\',)
我想知道这个错误是什么意思,因为这是我第一次遇到这样的错误。以及如何调试呢? 编辑:
Exception Value:    
\'WsgiRequest\' object has no attribute \'username\'
Exception Location: /home/satyajit/geodjango/geographic_admin/prof/views.py in view_foo,line 18
这是我的views.py
from django.shortcuts import render_to_response
from django.contrib.gis.shortcuts import render_to_kml

from django import forms

from django.contrib.auth.models import User
from django.shortcuts import get_object_or_404,render_to_response
from django.http import HttpResponseRedirect,HttpResponse

from django.contrib.auth.decorators import login_required




@login_required 
def view_foo(request):

   user1 = User.objects.get(user=request.User.username)
   return render_to_response(\'welcome.html\',{})
    

解决方法

        编辑:好的,我刚刚意识到这个查询有多愚蠢,我的错误:D。 如果您想要用户名,则可以执行以下操作:
user1= request.user.username
您得到
request.user
的用户实例。
this_user = request.user
一点解释:您的初始查询没有多大意义,因为User类没有字段user。同样,该查询是多余的,因为请求已经提供了用户实例(request.user,即为其会话的用户     ,        python中的错误(及其回溯)几乎总是有用的,并且很少包含不相关的信息。
\'WSGIRequest\' object has no attribute \'username\'
WSGIRequest
是来自Web服务器的WSGI请求的请求类别。约定是在视图中将这些作为\“ request \”参数进行处理。因此该错误表明您在某处正在执行
request.bad_attribute
,这里的ѭ9where是
username
。 如果某些中间件处于活动状态并添加了请求,那么您的请求将仅具有名为
username
的属性。但是,django中的默认值包括添加了
user
对象的中间件,所以这可能正是您真正想要的。
request.user.username
。 另外,请记住,属性访问区分大小写。毕竟是Just Python。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。