Разве вы не ищете отношения один к одному ?
user
в Child
можно установить только на один User
. child
в User
можно также установить только на один Child
. - Вы хотите, чтобы
user
в Child
и child
в User
указывали друг на друга.
Это именно то, что такое отношения один-к-одному.Следующий код даже проще, чем ваш текущий, и он налагает ограничения на уровне базы данных:
class User(AbstractUser):
# The relationship only needs to be defined in one of the models
pass
class Child(models.Model):
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
Если есть более мелкие моменты, которые вы должны покрыть (например, если есть ситуации, в которых вам потребуетсясвязь должна быть определена в одном направлении, но не в другом), затем уточните пример использования.