Игнасио прав.Сигналы модели Django предназначены для уведомления других компонентов системы о событиях, связанных с экземплярами, и их уважаемых данных, поэтому я полагаю, что действительно, вы не можете, скажем, получить доступ к данным запроса из сигнала модели post_save
, если только эти данные запроса не были сохранены илисвязанный с экземпляром.
Я думаю, что есть много способов справиться с этим, начиная от худшего к лучшему, но я бы сказал, что это простой пример для создания на основе классов /обобщенные представления на основе функций, которые будут автоматически обрабатывать это для вас.
Ваши представления, которые наследуются от CreateView
, UpdateView
или DeleteView
, дополнительно наследуют от вашего класса AuditMixin
, если они обрабатывают глаголы, которые работаютна моделях, которые должны быть проверены.AuditMixin
может затем подключаться к представлениям, которые успешно создают \ обновляют \ удаляют объекты и создают запись в базе данных.
Создает совершенный смысл, очень чистый, легко подключаемый и рождает счастливых пони.Оборотная сторона?Либо вам нужно будет выпустить релиз Django 1.3, который скоро выйдет, либо вам придется потратить некоторое время, изменяя основные функциональные представления на основе функций и предоставляя новые для каждой операции аудита.