Форум сайта python.su
Данный сигнал появился только в Django 1.2. Назрела необходимость использовать его в Django 1.1.
Знает ли кто-нибудь по этому поводу замену, или какой-нибудь workaround.
Задача состоит в том, чтобы выполнять некие телодвижения, когда пользователя включают или выключают из группы.
Офлайн
Переопределить (http://docs.djangoproject.com/en/1.2/topics/db/managers/#using-managers-for-related-object-access) add/remove/clear методы базового менеджера модели с помощью своего.
Офлайн
Это решение приходило в голову. Ну, если мыслей больше нет, придется делать так. Ferroman, спасибо.
Офлайн
А чем плохо отлавливать сигналы модели Users и когда идет изменение модели - проверять, состоит он в группе или нет?
Офлайн
vaxXxaПлохо тем, что обработчик сигнала post_save на User еще не видит, что у пользователя поменялись группы. Для этого и создавался m2m_changed сигнал. К сожалению проект в ближайшее время на 1.2 версию не перейдет, поэтому буду играться с менеджером.
А чем плохо отлавливать сигналы модели Users и когда идет изменение модели - проверять, состоит он в группе или нет?
Офлайн
Опишу еще одно частичное решение проблемы. Так как все изменения проделываются через админку, то есть реализация более простая и меньшей кровью.
Спасением в данном случае является метод save_model класса ModelAdmin. То есть, юзера сохраняем, данные новые из объекта мы все равно не получим, но зато у нас есть данные, которые были введены в форму, то есть, по сути, новый набор групп, в которых состоит пользователь. С этим можно уже работать.
Обращаюсь к вам, чтобы узнать, содержим ли такой подход подводные камни?
Офлайн
Какой-то частный “воркераунд”. Если группы можно ещё где-то добавлять (даже в другом месте админки) то проблема.
Офлайн
FerromanСогласен
Какой-то частный “воркераунд”
FerromanВ том-то и дело, что нет.
Если группы можно ещё где-то добавлять (даже в другом месте админки) то проблема.
Офлайн
Добавить новые связи возможно и в коде где-то через add/remove. В каком-нибудь кастомном сейве модели (пользователя, если не в админке, или или редактировании группы). Надо будет отслеживать все такие изменения. Хотя, если изменение состава групп происходит только в одном месте, то нормально, до апгрейда особых проблем не будет создавать, я думаю.
Офлайн