[英]primary key must be unique when extending table
I'm trying to add extend user model. 我正在尝试添加扩展用户模型。 I keep getting this error: Primary key is not unique
. 我不断收到此错误: Primary key is not unique
。
class UserExtended(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,parent_link=True,primary_key=True)
If I remove primary_key=True
then I get the error instance.userextended.id does not exists
well, of course it doesn't since now I dont have id. 如果我删除primary_key=True
那么我会收到错误instance.userextended.id does not exists
,当然现在我没有id了。
How do I get around this? 我该如何解决?
In models.py 在models.py中
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
class UserExtended(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
# Then you can also add fields like these to extended model
profilepic = models.ImageField(upload_to='uploads/users/%Y/%m/%d/', null=True, blank=True)
designation = models.CharField(max_length=200,null=True, blank=True)
about = models.TextField(null=True, blank=True)
website = models.URLField(null=True,blank=True)
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserExtended.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.userextended.save()
Now, whenever a new user is created, a extended record for that user will be created automatically. 现在,无论何时创建新用户,都会自动为该用户创建扩展记录。
Also, if a user record is saved, then it will automatically be updated in extended record. 同样,如果保存了用户记录,则它将在扩展记录中自动更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.