GAE中的Django版本

时间:2011-02-05 23:22:56

标签: django google-app-engine

我想在GAE中使用Django 1.1,但是当我取消注释时

  

use_library('django','1.1')

在此脚本中

import os

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'  
from google.appengine.dist import use_library 
#use_library('django', '1.1')


# Google App Engine imports.
from google.appengine.ext.webapp import util

# Force Django to reload its settings.
from django.conf import settings

settings._target = None

import django.core.handlers.wsgi
import django.core.signals
import django.db
import django.dispatch.dispatcher

# Unregister the rollback event handler.
django.dispatch.dispatcher.disconnect(
    django.db._rollback_on_exception,
    django.core.signals.got_request_exception)

def main():
    # Create a Django application for WSGI.
    application = django.core.handlers.wsgi.WSGIHandler()

    # Run the WSGI CGI handler with that application.
    util.run_wsgi_app(application)

if __name__ == "__main__":
    main()

我收到了

  

AttributeError:'module'对象没有   属性'disconnect'

发生了什么事?

1 个答案:

答案 0 :(得分:1)

来自http://justinlilly.com/blog/2009/feb/06/django-app-engine-doc-fix/

对于那些在Google上设置Django的人 App Engine上的版本之后 信号重构,以下修复 所提供的代码所需 谷歌。

# 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)

变为:

# Log errors.
django.dispatch.Signal.connect(
   django.core.signals.got_request_exception, log_exception)

# Unregister the rollback event handler.
django.dispatch.Signal.disconnect(
    django.core.signals.got_request_exception,
    django.db._rollback_on_exception)