我有一个科学信息模型,它与我的用户模型具有一对一的关系。这是我的模型:
class ScientificInfo(models.Model):
id = models.AutoField(primary_key=True)
user = models.OneToOneField(User, on_delete=models.CASCADE)
**other fields**
我还想在其中添加一个采访者字段,以便我可以从用户模型中选择一个采访者,所以我添加它是这样的:
class ScientificInfo(models.Model):
id = models.AutoField(primary_key=True)
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='user')
interviewer = models.OneToOneField(User, on_delete=models.CASCADE, related_name='interviews')
**other fields**
但是当我想创建一个新用户时,它给了我唯一约束失败的错误
回答1
您不必使用 OneToOneField
,因为您正在使用具有相同 table 的两个关系。你最好使用ForeignKey
。
class ScientificInfo(models.Model):
id = models.AutoField(primary_key=True)
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='users')
interviewer = models.ForeignKey(User, on_delete=models.CASCADE, related_name='interviews')
**other fields**
希望它可以帮助。