regall
Сен. 23, 2010 17:43:15
Данный сигнал появился только в Django 1.2. Назрела необходимость использовать его в Django 1.1.
Знает ли кто-нибудь по этому поводу замену, или какой-нибудь workaround.
Задача состоит в том, чтобы выполнять некие телодвижения, когда пользователя включают или выключают из группы.
Ferroman
Сен. 24, 2010 12:56:53
regall
Сен. 24, 2010 13:53:41
Это решение приходило в голову. Ну, если мыслей больше нет, придется делать так. Ferroman, спасибо.
vaxXxa
Сен. 24, 2010 13:57:58
А чем плохо отлавливать сигналы модели Users и когда идет изменение модели - проверять, состоит он в группе или нет?
regall
Сен. 24, 2010 14:00:35
vaxXxa
А чем плохо отлавливать сигналы модели Users и когда идет изменение модели - проверять, состоит он в группе или нет?
Плохо тем, что обработчик сигнала
post_save на User еще не видит, что у пользователя поменялись группы. Для этого и создавался m2m_changed сигнал. К сожалению проект в ближайшее время на 1.2 версию не перейдет, поэтому буду играться с менеджером.
regall
Сен. 24, 2010 16:44:39
Опишу еще одно частичное решение проблемы. Так как все изменения проделываются через админку, то есть реализация более простая и меньшей кровью.
Спасением в данном случае является метод save_model класса ModelAdmin. То есть, юзера сохраняем, данные новые из объекта мы все равно не получим, но зато у нас есть данные, которые были введены в форму, то есть, по сути, новый набор групп, в которых состоит пользователь. С этим можно уже работать.
Обращаюсь к вам, чтобы узнать, содержим ли такой подход подводные камни?
Ferroman
Сен. 25, 2010 01:20:51
Какой-то частный “воркераунд”. Если группы можно ещё где-то добавлять (даже в другом месте админки) то проблема.
regall
Сен. 25, 2010 11:21:50
Ferroman
Какой-то частный “воркераунд”
Согласен
Ferroman
Если группы можно ещё где-то добавлять (даже в другом месте админки) то проблема.
В том-то и дело, что нет.
Ferroman
Сен. 25, 2010 15:13:49
Добавить новые связи возможно и в коде где-то через add/remove. В каком-нибудь кастомном сейве модели (пользователя, если не в админке, или или редактировании группы). Надо будет отслеживать все такие изменения. Хотя, если изменение состава групп происходит только в одном месте, то нормально, до апгрейда особых проблем не будет создавать, я думаю.