Обработка отношений «многие ко многим» из существующей базы данных с использованием Django ORM - PullRequest
0 голосов
/ 08 мая 2019

Я начинаю работать с Django, уже выполнил некоторые модели, но всегда делал это с помощью подхода «сначала код», поэтому Django обрабатывал создание таблиц и т. Д. Сейчас я интегрирую уже существующую базу данных с ORM и Я столкнулся с некоторыми проблемами.

База данных имеет много связей «многие ко многим», поэтому существует довольно много таблиц, связывающих две другие таблицы. Я запустил команду inspectdb, чтобы позволить Джанго подготовить несколько моделей для меня. Я пересмотрел их, он довольно хорошо угадал поля и отношения, но дело в том, что я думаю, что мне не нужны эти таблицы ссылок в моих моделях, потому что Django обрабатывает отношения многие-ко-многим с полями ManyToManyField, но Я хочу, чтобы Django использовал эти таблицы ссылок под капотом.

Итак, мой вопрос: я должен удалить модели для таблиц ссылок и добавить ManyToManyFields к соответствующим моделям, или я должен как-то использовать эти модели?

Я не хочу каким-либо образом портить структуру базы данных, она довольно плотно заполнена.

Я использую Postgres 9.5, Django 2.2.

1 Ответ

0 голосов
/ 08 мая 2019

Во многих случаях это не имеет значения. Если вы хотите, чтобы код был минимальным, тогда поля m2m - хороший способ. Если вы не контролируете структуру базы данных, возможно, стоит сохранить схему inspectdb на тот случай, если вам придется делать это снова после изменений схемы, которые вы не контролируете. Если таблицы ссылок m2m могут расширять свои собственные свойства, вам необходимо сохранить их в качестве моделей.

...