Django';用户';对象没有属性';简介';当我';我正在尝试登录

Django';用户';对象没有属性';简介';当我';我正在尝试登录,django,model,Django,Model,我有一个OneTONE字段关系,但当我向其添加相关名称属性时,每次尝试登录时都会出现以下错误: 'User' object has no attribute 'profile' 配置文件模型: from django.db import models from django.contrib.auth.models import User from django.db.models.signals import post_save from django.dispatch import rece

我有一个OneTONE字段关系,但当我向其添加相关名称属性时,每次尝试登录时都会出现以下错误:

'User' object has no attribute 'profile'
配置文件模型:

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
# Create your models here.
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='user_profile')
weight = models.FloatField(max_length=20, blank=True, null=True)
height = models.FloatField(max_length=20, blank=True, null=True)
goal = models.FloatField(max_length=20, blank=True, null=True)
def __str__(self):
    return self.user.username

@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\u profile
从用户模型访问该模型

“相关名称”属性允许您通过设置的名称与相关模型交互

在视图中,您可以使用:request.user.user\u profile访问它

这将为您提供请求查看的用户的配置文件


上面是一个例子,但如果您引用某个特定用户,您可以通过在该用户之后添加
。user\u profile
来访问该配置文件。请尝试
user\u profile
我应该在哪里添加它?@Dánielmoszár更新了我的回答谢谢您的解释。我还有一个问题。Im使用Djangos内置的登录系统。如果我删除relatewd name属性,我的登录就可以正常工作,但会出现错误。你知道吗?@Dánielmossár编辑你的帖子并添加你的观点。pyI没有登录的观点,因为django Handles就是这样。我必须包括网址,就是这样。但是Django管理员登录会产生相同的错误aswell@DánielMozsár检查代码中的某个地方。您在
instance.profile.save()中引用了用户put.profile。@DánielMozsár
尝试将其更改为
instance.user\u profile.save()