Как я могу связать один экземпляр модели с другим в Django? - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь связать экземпляр модели с другим.Например, если у меня есть модель с именем Person, и я бы хотел связать человека с его / ее отцом.Как я могу это сделать?

Я не проверяю код, потому что в этом конкретном вопросе его нет.Но приведенный выше пример в основном то, что я пытаюсь сделать:

У меня есть модель людей (по имени Избиратель), я пытаюсь связать каждый экземпляр с другим как родственник (отец, мать, сестра)

Заранее спасибо.

1 Ответ

0 голосов
/ 28 марта 2019

Вы можете попробовать это, используя ManytoManyField внутри модели, которая указывает на экземпляр той же модели. Любые метаданные об отношениях могут быть сохранены в своей собственной сквозной таблице.

class Person(models.Model):
    relation = models.ManyToManyField(Person, through=Relation)

class Relation(models.Model):
    relation1 = models.ForeignKey(Person)
    relation2 = models.ForeignKey(Person)
    type_of_relation = models.SmallPositiveIntegerField(choices=[(1,'Father'), (2, 'Sister')... etc])

Подробнее о Сквозных таблицах и ManyToManyField читайте здесь: https://docs.djangoproject.com/en/2.1/topics/db/models/#extra-fields-on-many-to-many-relationships

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...