1

我正在尝试使用 djangoappengine 实现 Django 的投票应用教程。

我采取的步骤:
1)在工作区文件夹中复制了测试应用程序。

2) 复制 django-toolbox、dbindexer、django、djangoappengine、autoload,按照网站http://www.allbuttonspressed.com/projects/djangoappengine上的指示,在“test-app”文件夹中。

3)在Eclipse中启动了一个新项目作为PyDev Google App Engine Project,并将test-app作为工作文件夹。

4) 现在我使用终端在 GAE 上部署了应用程序

$ python manage.py 部署

在 x.appspot.com 上获得了“It Works”页面。

5)现在我尝试按照教程中的指示制作一个民意调查应用程序

python manage.py startapp 民意调查

文件夹“polls”是用四个文件创建的

6)我编辑了民意调查的model.py文件并添加了tutorial-1中提到的代码然后我运行了命令-

$ python manage.py 同步数据库

它没有显示错误,但没有创建新的投票表。我在settings.py的'Installed_Apps'下添加了'polls'
我认为问题出在数据库声明中,它是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 

我还有一些疑问,但在解决上述问题后我会提到它。

4

2 回答 2

0

Django 教程是为最新版本的 django 编写的。据我记得,时区是在 1.3 左右添加到 django.utils 中的?你能检查一下你有什么版本的Django吗?当前版本是 1.41。

于 2012-09-18T09:38:20.567 回答
0

根据this page for App Engine 3rd Party support in Python 2.7

https://developers.google.com/appengine/docs/python/tools/libraries27

App Engine 仅支持以下版本:

“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 条目中

于 2012-09-18T11:01:38.993 回答