Задать вопрос
@softshape

Как глобально зафильтровать Django-модель?

Всем привет,

наш афишный сайт www.yaidu.ru написан на Django. Очевидно, что там очень много кода, который работает с моделью Событие (event). Не в программистском смысле event :), а как мероприятие.

Сайт, исторически, иркутский. Сейчас у нас встала задача расширить его в другие города, а значит у модели event появляется новый атрибут city - город. Изначально он не был предусмотрен.

Будет глобальный параметр типа "текущий город", который выставит middleware. Можно ли все выборки в модели event дополнительно фильтровать по этому параметру, не переписывая код всего сайта, а где-то в одном месте? И что это за место, если есть?
  • Вопрос задан
  • 2253 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
abukin
@abukin
Программирую на Python
Я бы попробывал в таком случае переписать менеджер objects в моделях.
Сначала сделать отнаследованный и переписанный класс менеджера с фильтром, присвоить переменной, а потом присваивать её всем моделям.

Там есть пример в самом конце djbook.ru/rel1.4/topics/db/managers.html - только без mgr.use_for_related_fields = True надо сделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы