【问题标题】:Migrating django.dispatch.dispatcher from Django 0.96 to 1.0.2将 django.dispatch.dispatcher 从 Django 0.96 迁移到 1.0.2
【发布时间】:2010-11-19 02:31:00
【问题描述】:

如何在 Django 1.0 中执行以下 (Django 0.96) 调度程序挂钩?

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)

感谢阅读。

布赖恩

【问题讨论】:

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


    【解决方案1】:

    基本区别在于您不再要求调度员将您连接到某个信号,而是直接询问信号。所以它看起来像这样:

    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)
    

    【讨论】:

      猜你喜欢
      • 2011-08-16
      • 2019-09-13
      • 2011-01-24
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      • 2012-04-10
      相关资源
      最近更新 更多