如何在 Django 1.0 中执行以下 (Django 0.96) 调度程序 Hook ?
import django.dispatch.dispatcher
def log_exception(*args, **kwds):
logging.exception('Exception in request:')
# Log errors.
django.dispatch.dispatcher.connect(
log_exception, django.core.signals.got_request_exception)
# Unregister the rollback event handler.
django.dispatch.dispatcher.disconnect(
django.db._rollback_on_exception,
django.core.signals.got_request_exception)
顺便说一句,这段代码来自Google's Article on Using Django on GAE .不幸的是,Django 中的调度代码在 0.96 和 1.0 之间被重写,Google 的示例不适用于 Django 1.0。
当然,Django 的人提供了一个 helpful guide关于如何准确地进行此迁移,但我目前还不够热衷于弄清楚。 :o)
感谢阅读。
布莱恩
最佳答案
基本区别在于您不再要求调度员将您连接到某个信号,而是直接询问信号。所以它看起来像这样:
from django.core.signals import got_request_exception
from django.db import _rollback_on_exception
def log_exception(*args, **kwds):
logging.exception('Exception in request:')
# Log errors.
got_request_exception.connect(log_exception)
# Unregister the rollback event handler.
_rollback_on_exception.disconnect(got_request_exception)
关于django - 将 django.dispatch.dispatcher 从 Django 0.96 迁移到 1.0.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1268520/