Уведомления

Группа в Telegram: @pythonsu

#1 Июль 16, 2008 02:49:46

jed
От:
Зарегистрирован: 2008-07-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

Пробую запустить pythonua под google appEngine.
Использую appengine_helper_for_django-r30.zip.
django_example_20080409.tar.gz работает.

Request Method:  	GET
Request URL: http://localhost:8080/
Exception Type: AttributeError
Exception Value: 'module' object has no attribute 'quote_name'
Exception Location: C:\gapp\lib\django\django\db\models\query.py in _get_sql_clause, line 477

Traceback (most recent call last):
File "C:\gapp\lib\django\django\core\handlers\base.py" in get_response
77. response = callback(request, *callback_args, **callback_kwargs)
File "G:\from_net\dev\python\examplez\pythonua\site\views.py" in index
32. ex = Exception.objects.all().filter(lang__lang__exact=language).latest('id')
File "C:\gapp\lib\django\django\db\models\query.py" in latest
291. return self._clone(_limit=1, _order_by=('-'+latest_by,)).get()
File "C:\gapp\lib\django\django\db\models\query.py" in get
250. obj_list = list(clone)
File "C:\gapp\lib\django\django\db\models\query.py" in __iter__
108. return iter(self._get_data())
File "C:\gapp\lib\django\django\db\models\query.py" in _get_data
470. self._result_cache = list(self.iterator())
File "C:\gapp\lib\django\django\db\models\query.py" in iterator
174. select, sql, params = self._get_sql_clause()
File "C:\gapp\lib\django\django\db\models\query.py" in _get_sql_clause
477. select = ["%s.%s" % (backend.quote_name(opts.db_table), backend.quote_name(f.column)) for f in opts.fields]

AttributeError at /
'module' object has no attribute 'quote_name'
Если положить в pythonua свежий django, то
Environment:
Request Method: GET
Request URL: http://localhost:8080/
Django Version: 0.97-pre-SVN-7928
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.comments',
'site',
'blog',
'sitereg',
'books',
'links',
'articles']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware')


Traceback:
File "G:\from_net\dev\python\examplez\pythonua\django\core\handlers\base.py" in get_response
76. callback, callback_args, callback_kwargs = resolver.resolve(request.path)
File "G:\from_net\dev\python\examplez\pythonua\django\core\urlresolvers.py" in resolve
231. for pattern in self.urlconf_module.urlpatterns:
File "G:\from_net\dev\python\examplez\pythonua\django\core\urlresolvers.py" in _get_urlconf_module
255. raise ImproperlyConfigured, "Error while importing URLconf %r: %s" % (self.urlconf_name, e)

Exception Type: ImproperlyConfigured at /
Exception Value: Error while importing URLconf 'urls': 'ModelOptions' object has no attribute 'db_table'
Поиски не помогли. Нашел похожие вопросы, но ответы не помогли.

http://oebfare.com/logger/django/2008/06/01/
http://pyg.pl/public/irclogs/2008/freenode/%23django/29.04.log

Куда нужно копать? Я новичек в питоне и в джанго.
Возможно что нужно сконвертировать сначала БД из sqlite в appengine?
В архиве есть settings.py urls.py и еще несколько файлов.



Офлайн

#2 Июль 16, 2008 02:52:14

jed
От:
Зарегистрирован: 2008-07-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

zip с файлами чего-то не отправился.

вот settings.py

# Django settings for pythonua project.

DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
# ('Your Name', ‘your_email@domain.com’),
)

MANAGERS = ADMINS

DATABASE_ENGINE = ‘appengine’ # ‘postgresql’, ‘mysql’, ‘sqlite3’ or ‘ado_mssql’.
DATABASE_NAME = ‘pythonua’ # Or path to database file if using sqlite3.
DATABASE_USER = ‘' # Not used with sqlite3.
DATABASE_PASSWORD = ’' # Not used with sqlite3.
DATABASE_HOST = ‘' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ’' # Set to empty string for default. Not used with sqlite3.

# Local time zone for this installation. All choices can be found here:
# http://www.postgresql.org/docs/current/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE
TIME_ZONE = ‘America/Chicago’

# Language code for this installation. All choices can be found here:
# http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes
# http://blogs.law.harvard.edu/tech/stories/storyReader$15
LANGUAGE_CODE = ‘ru’

DEFAULT_CHARSET = ‘utf-8’

SITE_ID = 1

# Absolute path to the directory that holds media.
# Example: “/home/media/media.lawrence.com/”
#MEDIA_ROOT = ‘/webhomes/alafin/pythonua/templates/images’
MEDIA_ROOT = ‘templates/images’

# URL that handles the media served from MEDIA_ROOT.
# Example: "http://media.lawrence.com
MEDIA_URL = ''

# URL prefix for admin media – CSS, JavaScript and images. Make sure to use a
# trailing slash.
# Examples: ”http://foo.com/media/“, ”/media/“.
ADMIN_MEDIA_PREFIX = ‘/media/’

# Make this unique, and don't share it with anybody.
SECRET_KEY = ‘gl=er_^6&cg+-^d_#5^sddong-&7t3yjnh@5n&(r6$7dy^p6le’

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
‘django.template.loaders.filesystem.load_template_source’,
‘django.template.loaders.app_directories.load_template_source’,
# ‘django.template.loaders.eggs.load_template_source’,
)

MIDDLEWARE_CLASSES = (
‘django.middleware.common.CommonMiddleware’,
# ‘django.contrib.sessions.middleware.SessionMiddleware’,
‘django.contrib.auth.middleware.AuthenticationMiddleware’,
# ‘django.middleware.doc.XViewMiddleware’,
)

TEMPLATE_CONTEXT_PROCESSORS = (
‘django.core.context_processors.auth’,
‘django.core.context_processors.debug’,
‘django.core.context_processors.i18n’,
# ‘django.core.context_processors.media’, # 0.97 only.
# ‘django.core.context_processors.request’,
)


ROOT_URLCONF = ‘urls’

TEMPLATE_DIRS = (
# Put strings here, like ”/home/html/django_templates".
# Always use forward slashes, even on Windows.
#'/webhomes/alafin/pythonua/templates',
‘templates’,
)

INSTALLED_APPS = (
# ‘extensions’,
‘appengine_django’,
‘django.contrib.auth’,
# ‘django.contrib.contenttypes’,
# ‘django.contrib.sessions’,
# ‘django.contrib.sites’,
‘django.contrib.admin’,
‘django.contrib.comments’,
‘site’,
‘blog’,
‘sitereg’,
‘books’,
‘links’,
‘articles’,
)

# settings for sitereg app
AUTH_PROFILE_MODULE = ‘sitereg.UserProfile’
EMAIL_HOST_USER = ‘pyuatest’
EMAIL_HOST_PASSWORD = ‘pytest’
EMAIL_HOST = ‘smtp.mail.ru’
EMAIL_PORT = 25
DEFAULT_FROM_EMAIL = ‘pyuatest@mail.ru



Офлайн

#3 Июль 16, 2008 02:53:20

jed
От:
Зарегистрирован: 2008-07-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

from django.conf.urls.defaults import *
from django.conf import settings
from blog.models import *

urlpatterns = patterns('',
(r'^admin/', include('django.contrib.admin.urls')),
(r'^images/(?P<path>.*)$', ‘django.views.static.serve’, {'document_root': settings.MEDIA_ROOT}),
(r'^$', ‘site.views.index’, {'num':1 ,'language': ‘ru’}),
(r'^(?P<language>\w{2})/$', ‘site.views.index’, {'num' : 1}),
(r'^(?P<language>\w{2})/(?P<num>\d{1,2})/$', ‘site.views.index’),
#(r'^(?P<language>\w{2})/(?P<id>\d{1,2})$', ‘site.views.index’),
(r'^(?P<language>\w{2})/articles/$', ‘site.views.categories’),
(r'^forum/$', ‘redirect_to’, {'url' : 'http://python.com.ua/forum'}),
(r'^(?P<language>\w{2})/news/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\w{1,2})/(?P<slugefield>+)/$','site.views.news'),
(r'^accounts/', include('sitereg.urls')),
(r'^(?P<language>\w{2})/books/$', ‘books.views.index’),
(r'^(?P<language>\w{2})/links/$', ‘links.views.index’),
(r'^(?P<language>\w{2})/links/(?P<slugefield>+)/$', ‘links.views.category’),
(r'^(?P<language>\w{2})/articles/(?P<categ>\w+)/$', ‘articles.views.index’),
(r'^comments/', include('django.contrib.comments.urls.comments')),
(r'^addnews/$', ‘blog.views.add_news’),
)



Офлайн

#4 Июль 16, 2008 10:20:59

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

На локальной машине работает?

Офлайн

#5 Июль 16, 2008 11:45:55

jed
От:
Зарегистрирован: 2008-07-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

Ferroman
На локальной машине работает?
Нет. Это все на локальной машине с установленным appEngine SDK.



Офлайн

#6 Июль 16, 2008 12:15:18

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

Код модели, я думаю, прояснил бы ситуацию. А ещё лучше с кодом site.views.index.

Офлайн

#7 Июль 16, 2008 15:34:49

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

GAE не поддерживает ORM джанги. Следовательно те проекты которые его используют, не могут быть запущены под GAE. Нужно портирование и адаптация под BigTable.



Офлайн

#8 Июль 16, 2008 16:47:50

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

Хм, то-то я смотрю в джанге должно всё нормально быть…

Офлайн

#9 Июль 16, 2008 20:50:51

jed
От:
Зарегистрирован: 2008-07-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

Код я взял тут и не менял (кроме settings.py, urls.py и может еще какую мелочь). Просто пробовал запускать, то что в ветке “примеры джанго”. Там 9ое сообщение с сылкой http://pythonua.googlecode.com/files/pythonua.zip
В джанге я попробовал, вроде с этим кодом нормально все.

Вопросы становятся такими:
1) Object-relational mapping (aka ORM) в джанго замурован сильно? Т.е. можно ли его (без сильных проблем) реализовать внутри по-дугому оставив тотже интерфейс к нему?
Google App Engine does not provide an SQL database so you cannot use Django's standard Model class.
Т.е. в appEngine своя БД. По-идее если ORM - заменяемый модуль, то нужно просто переписать его на совместимость с гугловской БД?

2) Про хелпер, который я упоминал - We have created a helper that prevents you from needing to worry about most of these differences. The helper works by providing alternative implementations for the portions of Django that do not work with Google App Engine.
Т.е. или я неправильно использую хелпер или хелпер не справляется. Может кто-нибудь успешно использовал этот хелпер http://code.google.com/p/google-app-engine-django/ с django-ORM? Или пожалуйста дайте ссылку где написано что это невозможно.



Офлайн

#10 Июль 16, 2008 21:05:23

jed
От:
Зарегистрирован: 2008-07-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

'module' object has no attribute 'quote_name' (appEngine)

jed
хелпер не справляется.
еще почитал разговор в мирке
http://oebfare.com/logger/django/2008/06/01/
и нашел что rozwell пишет
т.е. самый простой путь это изменить по несколько строк в каждом view… Осталось выяснить какие строки на что поменять :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version