выполненный код после фиксации транзакции в Django

В быстром вы будете делать следующее:

self.navigationController.navigationBar.titleTextAttributes = [
    NSForegroundColorAttributeName : UIColor.redColor(),
    NSFontAttributeName : UIFont.systemFontOfSize(20)
]
17
задан Grégoire Cachet 4 June 2009 в 12:25
поделиться

3 ответа

ОБНОВЛЕНИЕ 2 : крючки-транзакции django были объединены с ядром Django и выпущены в Django версии 1.9.

ОБНОВЛЕНИЕ : django-transaction-hooks решает эту проблему.

Я не верю, что есть чистый способ сделать это; по крайней мере, я не могу вспомнить ни одного. Вы можете monkeypatch django.db.transaction.commit для отправки настраиваемого сигнала; не очень красиво, но я думаю, что это сработает.

Также может быть интересно поднять этот вариант использования в списке рассылки django-developers . Разработчики, как правило, не хотят добавлять новые сигналы, но у вас может быть хороший случай (и опровержение основного разработчика может включать полезное предложение о том, как разрешить вашу ситуацию). Однако у вас больше шансов получить ответы, если вы дождетесь выхода версии 1.1.

10
ответ дан 30 November 2019 в 13:05
поделиться

Одна из возможностей - создать подкласс промежуточного программного обеспечения транзакции, чтобы оно отправляло специальный сигнал при фиксации. Ваш код может прослушивать этот сигнал, а не post_save.

1
ответ дан 30 November 2019 в 13:05
поделиться

I have implemented transaction signals (post_commit and post_rollback) by monkey patching django: http://gist.github.com/247844

5
ответ дан 30 November 2019 в 13:05
поделиться
Другие вопросы по тегам:

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