LINUX.ORG.RU

Общие модели в Django

 ,


0

1

Всем привет! Делаю сайт на Django и задался вопросом архитектуры. Поясню: у меня в проекте есть статьи, пользователи и другие сущности, находящиеся в разных пакетах проекта (приложениях), но все они имеют изображения (где-то только одно, где-то их может быть много). Вижу два наиболее подходящих варианта: 1) Сделать отдельное приложение utils, в котором создать общую для всех изображений модель Image и сделать её универсальной. Модели, которые имеют изображения, с помощью ForeignKey или ManyToMany связываются с моделью Image. На мой взгляд, основной недостаток тут в том, что получается сильная связанность между приложениями. 2) В каждом приложении создать свою модель Image, поля которой будут различаться незначительно (а, возможно, и вовсе одинаковыми будут). Тут вижу недостаток в дублировании кода либо частичном, либо полном. Какой из этих двух вариантов вам кажется наиболее удачным?

Ответ на: комментарий от pawnhearts

Вопрос именно в том, где именно хранить модель Image. Делать её общей или делать в каждом приложении свою отдельную?

dimuska139 ★★
() автор топика
Ответ на: комментарий от dimuska139

В первом случае общей, если наследоваться то делать в каждой свою и там foreignkey до нужной модели прописывать.

pawnhearts ★★★★★
()
Ответ на: комментарий от dimuska139

Делать её общей или делать в каждом приложении свою отдельную?

Конечно, общую. DRY, все дела.

сильная связанность между приложениями

От того, что у тебя два приложения ссылаются на одну модель, они связанными не становятся.

provaton ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.