django - 如何与特定模型建立多个一对一关系

我有一个科学信息模型,它与我的用户模型具有一对一的关系。这是我的模型:

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**

希望它可以帮助。

相似文章

随机推荐

最新文章