django - 将 django.dispatch.dispatcher 从 Django 0.96 迁移到 1.0.2

标签 django google-app-engine migration django-signals

如何在 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/

相关文章:

python - 如何在html中使用客户过滤器? django(带数字的循环)

python - Django url 中的 "path"是什么意思

python - 核心 Django 是否支持没有 django-south 或类似应用程序的迁移?

ruby-on-rails - 为has_many 和belongs_to 创建Rails 模型关联

python - 将数据从 MySQL 传输到 Neo4j

python - 在 OSX 上开始 Django/Python/MySQL 的类(class)(来自 OSX 新手)

google-app-engine - 如何手动删除本地 gcloud Dart DB?

python-2.7 - 只读文件系统 : '/dev/null' while running google-cloud-sdk project

google-app-engine - 如何为 Google App Engine 实例指定区域?

c++ - 用C++完成此任务;从AS3.0迁移