Как иметь несколько отношений "один к одному" к определенной модели
У меня есть научная информационная модель, которая имеет связь один-к-одному с моей моделью пользователя. вот моя модель:
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**
но когда я хочу создать нового пользователя, он выдает ошибку unique constraint failed
Вы не должны использовать OneToOneField, потому что вы используете два отношения с одной таблицей. Лучше использовать 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**
Надеюсь, это может помочь.