Как сделать приложение Django подключаемым? - PullRequest
6 голосов
/ 04 мая 2009

Скажем, например, у меня есть приложение для блога, которое я хочу использовать в разных проектах, но я всегда хочу, чтобы блог был связан с какой-то другой моделью. Например, в одном случае я могу захотеть связать его с пользователем:

site.com / someuser / блог

Но на другом сайте я хочу, чтобы это было связано, скажем, со школой:

site.com / someschool / блог

Есть ли способ сделать приложение блога подключаемым, чтобы не нужно было переопределять модель (добавляя поле внешнего ключа) всякий раз, когда я помещаю ее в проект?

Ответы [ 3 ]

6 голосов
/ 04 мая 2009

Есть несколько важных деталей, чтобы убедиться, что приложение можно использовать повторно, и я думаю, что лучше всего сослаться на два из более важных комплектов документации по теме:

4 голосов
/ 04 мая 2009

Возможно, вы захотите взглянуть на инфраструктуру ContentTypes, я использовал ее для создания приложения комментариев, которое можно использовать для комментирования любой модели в базе данных (по разным причинам я не хотел использовать стандартное приложение комментариев django) .

http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/

3 голосов
/ 04 мая 2009

Родовые отношения позволяют иметь внешний ключ для любой другой модели. Однако из вашего вопроса не ясно, к какому типу объектов вы хотите привязать внешний ключ. Я подозреваю, что отношения с внешним ключом не являются действительно общими - вы просто не заметили другую часть вашей системы, которая также может быть приложением многократного использования.

...