我正在尝试使用djangoappengine实现Django的民意调查app教程。
我采取的步骤:
1)在工作区文件夹中复制test-app。
2)按照网站http://www.allbuttonspressed.com/projects/djangoappengine上的指示,在'test-app'文件夹中复制django-toolbox,dbindexer,django,djangoappengine,autoload。
3)在eclipse中以PyDev Google App Engine Project开始了一个新项目,并将test-app作为工作文件夹。
4)现在我使用终端
在GAE上部署了应用程序$ python manage.py deploy
在x.appspot.com上获得“It Works”页面。
5)现在我尝试按照教程
中的指示制作一个民意调查应用程序python manage.py startapp民意调查
文件夹'polls'是用四个文件创建的
6)我编辑了民意调查的model.py文件并添加了教程-1中提到的代码 然后我运行了命令 -
$ python manage.py syncdb
它没有显示任何错误,但没有创建新的民意调查表。 我在settings.py中的'Installed_Apps'下添加了'民意调查' 我认为问题出在数据库声明中,它是dbindexer而不是django.db.backends.sqlite3,但我不确定。
我在shell中运行它时也会出错
>>> from django.utils import timezone
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: cannot import name timezone
我还有更多疑问,但在上述问题解决后我会提及。
答案 0 :(得分:0)
Django教程是为最新版本的django编写的。据我所知,时区被添加到django.utils 1.3左右?你能查看你有哪些版本的Django吗?目前的版本是1.41。
答案 1 :(得分:0)
根据Python 2.7中App Engine第三方支持的此页面
https://developers.google.com/appengine/docs/python/tools/libraries27
App引擎仅支持以下版本:
“1.2”
“1.3”
“最新”
所以我认为你不能使用1.41。
这里有关于Django用法的进一步说明:
https://developers.google.com/appengine/docs/python/tools/libraries27#django
要将Django与NDB存储API一起使用,请将“google.appengine.ext.ndb.django_middleware.NdbDjangoMiddleware”添加到Django settings.py文件中的MIDDLEWARE_CLASSES条目中。
你的app.yaml中有这样的条目吗?
libraries:
- name: django
version: "1.3"
你做过这个吗?
要将Django与NDB存储API一起使用,请将“google.appengine.ext.ndb.django_middleware.NdbDjangoMiddleware”添加到Django settings.py中的MIDDLEWARE_CLASSES条目中