Python ';WSGIRequest&x27;对象没有属性';用户';

Python ';WSGIRequest&x27;对象没有属性';用户';,python,django,Python,Django,一、 为了我的生命,我不能让它工作。我已经研究了这个错误的含义,实际上只收到了接近“将中间件更改为中间件类”的响应。这不起作用。我尝试过重新安排中间件类,但是,这也不起作用。在我的代码中是否有我应该关注的导致此错误的内容 方法学: 当用户登录时,会将用户定向到.com/user/,它将根据is_userA或is_userB属性确定要显示的仪表板。但是,当我登录时,我看到的“WSGIRequest”对象没有“user”属性 回溯 Environment: Request Method: GET

一、 为了我的生命,我不能让它工作。我已经研究了这个错误的含义,实际上只收到了接近“将中间件更改为中间件类”的响应。这不起作用。我尝试过重新安排中间件类,但是,这也不起作用。在我的代码中是否有我应该关注的导致此错误的内容

方法学:

当用户登录时,会将用户定向到.com/user/,它将根据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'
视图.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")
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.logged_in, name='index')
]
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()
url.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")
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.logged_in, name='index')
]
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()
型号.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")
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.logged_in, name='index')
]
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()
这是因为属性是“user”


这是因为属性是“user”。

对user使用小写:

request.user

对用户使用小写字母:

request.user

答对 了谢谢你的关注。如果request.user.profile.is\u userB:等,则必须是
,宾果。谢谢你的关注。如果request.user.profile.is_userB:
等,则必须是
。它将修复该问题。它将修复该问题。