2016-12-13 123 views
0

我對於我的生活無法得到這個工作。我已經研究了這個錯誤意味着什麼,並且確實只收到了「更改MIDDLEWARE到MIDDLEWARE_CLASSES」的響應。這沒有奏效。我嘗試重新安排中間件類,但是,這也不起作用。我的代碼中是否有任何內容應該引起關注,導致此錯誤?'WSGIRequest'對象沒有屬性'user'

方法:

當中,用戶被引導用戶登錄到的.com /用戶/這將決定於顯示基於is_userA或is_userB屬性,該屬性信息顯示板。但是,當我登錄時,即時消息呈現的'WSGIRequest'對象沒有屬性'user'。

回溯

Environment: 


Request Method: GET 
Request URL: http://127.0.0.1:8000/user/ 

Django Version: 1.10.3 
Python Version: 2.7.11 
Installed Applications: 
['django.contrib.admin', 
'django.contrib.sites', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'main', 
'allauth', 
'allauth.account', 
'allauth.socialaccount', 
'userprofiles'] 
Installed Middleware: 
['django.middleware.security.SecurityMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware'] 



Traceback: 

File "/Users/*/Desktop/*env/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 
    39.    response = get_response(request) 

File "/Users/*/Desktop/*env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 
    187.     response = self.process_exception_by_middleware(e, request) 

File "/Users/*/Desktop/*env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 
    185.     response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/Users/*/Desktop/*env/*/userprofiles/views.py" in logged_in 
    5.  if request.User.Profile.is_userA: 

Exception Type: AttributeError at /user/ 
Exception Value: 'WSGIRequest' object has no attribute 'User' 

views.py

from django.shortcuts import render 

def logged_in(request): 
    if request.User.Profile.is_userA: 
     return render(request, "userA_dashboard.html") 
    if request.User.Profile.is_userB: 
     return render(request, "userB_dashboard.html") 

urls.py

from django.conf.urls import url 
from . import views 

urlpatterns = [ 
    url(r'^$', views.logged_in, name='index') 
] 

models.py

from __future__ import unicode_literals 
from django.db import models 
from django.contrib.auth.models import User 
from django.db.models.signals import post_save 
from django.dispatch import receiver 
from django.utils import timezone 

class Profile(models.Model): 
    user = models.OneToOneField(User, on_delete=models.CASCADE) 

    #account types 
    is_userA = models.BooleanField('User A', default=True) 
    is_userB = models.BooleanField('User B', default=False) 
    is_superuser = models.BooleanField('SuperUser', default=False) 

    #other fields here 
    avatar = models.ImageField('avatar', upload_to='static/media/images/avatars/', null=True, blank=True) 
    phone = models.CharField('phone number', max_length=20, blank=True, default='') 
    address = models.CharField('address', max_length=100, default='', blank=True) 
    city = models.CharField('city', max_length=100, default='', blank=True) 
    state = models.CharField('state', max_length=2, default='', blank=True) 
    country = models.CharField('country', max_length=100, default='', blank=True) 
    date_joined = models.DateTimeField(default=timezone.now) 

    @receiver(post_save, sender=User) 
    def create_user_profile(sender, instance, created, **kwargs): 
     if created: 
      Profile.objects.create(user=instance) 

    @receiver(post_save, sender=User) 
    def save_user_profile(sender, instance, **kwargs): 
     instance.profile.save() 

回答

3
Exception Value: 'WSGIRequest' object has no attribute 'User' 

這是因爲屬性是 「用戶」。

+0

賓果。感謝你接受這一點。它需要'如果request.user.profile.is_userB:'等... – Nick

1

使用小寫用戶:

request.user 
+0

這並沒有提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/14585784) –

+0

它會解決問題。 –

+0

你說得對。 –

相關問題