Вопрос

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

site.com/someuser/blog

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

site.com/someschool/blog

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

Это было полезно?

Решение

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top