2012-04-21 3 views
1

Я выполнил следующие шаги здесь https://developers.google.com/cloud-sql/docs/django, и он отлично справился с django 1.3.1. Теперь до Django 1.4 и вы получите смешную трассировку стека. Я бы вставлял соответствующую часть сообщения здесь./manage.py тест Django 1.4 дает импорт Thing2Literal, не найденный в google appengine

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/dumb906/woody/py/mdlr/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/home/dumb906/woody/py/mdlr/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/dumb906/woody/py/mdlr/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/home/dumb906/woody/py/mdlr/django/core/management/__init__.py", line 69, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/home/dumb906/woody/py/mdlr/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/dumb906/woody/py/mdlr/django/core/management/commands/test.py", line 7, in <module> 
    from django.test.utils import get_runner 
    File "/home/dumb906/woody/py/mdlr/django/test/__init__.py", line 5, in <module> 
    from django.test.client import Client, RequestFactory 
    File "/home/dumb906/woody/py/mdlr/django/test/client.py", line 21, in <module> 
    from django.test import signals 
    File "/home/dumb906/woody/py/mdlr/django/test/signals.py", line 2, in <module> 
    from django.db import connections 
    File "/home/dumb906/woody/py/mdlr/django/db/__init__.py", line 40, in <module> 
    backend = load_backend(connection.settings_dict['ENGINE']) 
    File "/home/dumb906/woody/py/mdlr/django/db/__init__.py", line 34, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "/home/dumb906/woody/py/mdlr/django/db/utils.py", line 92, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "/home/dumb906/woody/py/mdlr/django/db/utils.py", line 44, in load_backend 
    raise ImproperlyConfigured(error_msg) 
django.core.exceptions.ImproperlyConfigured: 'google.appengine.ext.django.backends.rdbms' isn't an available database backend. 
    Try using django.db.backends.XXX, where XXX is one of: 
     'dummy', 'mysql', 'oracle', 'postgresql_psycopg2', 'sqlite3' 
    Error was: cannot import name Thing2Literal 

Любая помощь? Кто-то сказал, что его необходимо скомпилировать http://django-irc-logs.com/2012/mar/27/?

+1

Пожалуйста, не обращайтесь на внешние сайты, такие как pastebins для вашего вопроса; данные там, как правило, исчезают неожиданно. –

+0

спасибо @NickJohnson – dumb906

ответ

-2

Как вы можете видеть в документации, которую вы связали, Google App Engine поддерживает только Django до версии 1.3 (на самом деле 1.3.1).

+0

ok. Хорошее предложение, но я не думаю, что это действительно решение, потому что позже я узнал, что библиотека, дающая эту ошибку, связана с MySqlDb, а не с django. – dumb906

3

У меня была та же проблема. Поскольку проблема связана с импортом Thing2Literal, который используется функцией adapt_datetime_with_timezone_support из django/db/backends/mysql/base.py, и в соответствии с этим: https://code.djangoproject.com/changeset/17596/django/trunk/django/db/backends/mysql/base.py это важно только для объектов datetime, которые обходят слой модели и используются с raw sql , Поэтому я решил, что это не важно для меня, и я немного испортил свой django/db/backends/mysql/base.py: закомментируйте код, вызывающий проблемы (импорт Thing2Literal, функция_подстановки_повторимости_используется функция_создания и строка 83, где вызывается функция) Конечно, я загружаю свой django 1.4, настроенный таким образом, чтобы приспособиться вместе с моим проектом, и он работает.

Я был бы признателен за отзыв от тех, кто лучше понимает внутренности django, независимо от того, что я сделал, это нормально, если я не использую raw sql вообще.

+0

спасибо. Можете ли вы рассказать мне строки для редактирования, чтобы я мог также просмотреть? – dumb906

+0

вот он: https://github.com/martar/django/commit/c5307e3291d0c0d43bd72b691d521c873134418f – martar