【发布时间】:2021-12-07 06:10:52
【问题描述】:
我正在创建一个 API。当我创建新用户或编辑现有用户并保存时,我收到此错误 “/admin/accounts/user/1/change/ 处的 AttributeError “用户”对象没有属性“配置文件”
为了清楚起见,我有一个用户模型和一个配置文件模型,它与我的用户模型具有一对一的关系。
这是我的用户模型
artist_name = models.CharField(
max_length=255,
default='artist name',
unique=True
)
slug = models.SlugField(max_length=250, null=True, blank=True)
email = models.EmailField(max_length=300, unique=True)
active = models.BooleanField(default=True)
staff = models.BooleanField(default=False)
admin = models.BooleanField(default=False)
date_joined = models.DateTimeField(auto_now_add=True)
last_login = models.DateTimeField(auto_now_add=True)
我的个人资料模型
class Profile(models.Model):
user = models.OneToOneField(
User,
on_delete=models.CASCADE,
related_name="user",
default=1
)
first_name = models.CharField(max_length=255, blank=True, null=True)
last_name = models.CharField(max_length=255, blank=True, null=True)
country = models.CharField(max_length=500, blank=True, null=True)
gender = models.CharField(max_length = 20, blank=True, null=True)
record_label = models.CharField(max_length=255, blank=True, null=True)
image = models.FileField()
还有我的信号
from .models import User, Profile
from django.dispatch import receiver
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
我还应该提到,我还没有我的用户和个人资料的视图。但我认为这不会影响管理区域。 到目前为止,我已经在网上搜索过,但没有任何效果。
谢谢你的期待。
【问题讨论】:
-
为什么同一个信号有两个信号处理器?您可以将它们合并为一个,将
instance.profile.save()移动到第一个处理程序的else
标签: django api model admin profile