Django, соедините одно поле с несколькими моделями - PullRequest
0 голосов
/ 18 февраля 2020

Я думаю, это "нормальная" проблема. Я хочу соединить модель C с различными моделями A, B, ..

Model A "buildings"
 - time_built
 - description
 - adress
 - architects[]=Model C
 - places

Model B "photos":
 - time_taken
 - title
 - architects[]=Model C
 - places

Model C "architects"
- title
- time_born
- website
- items[]=Model A+Model B

Поэтому элементы должны быть связаны m: n с моделью A или B для запросов типа «найти архитекторов по зданиям в Калифорнии» , Модели A и B могут иметь несколько архитекторов.

Возможно ли реализовать что-то подобное в Django? Я думал использовать промежуточную модель, но, как я понял, она мне тоже не помогает.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Хорошо, кажется, что есть два решения:

0 голосов
/ 18 февраля 2020

Да, Django имеет отношение «многие ко многим» .

В Buildings, положить

    architects = models.ManyToManyField(Architect)

В Photos, положить

    architects = models.ManyToManyField(Architect)

Это будет обрабатывать отношения и путем создания файла миграции и его запуска таблицы БД будут созданы автоматически (их должно быть 5).

...