如果我注释掉使用djangoforms的处理程序,其他一切似乎都有效。
以下是我修改过的app.yaml:
application: xxxxxxx
version: 5
#` -1+1
# runtime: python
runtime: python27
api_version: 1
inbound_services:
- mail
#` +3
libraries:
- name: django
version: "1.2"
handlers:
- url: /(.*\.(html|css|js|gif|jpg|png|ico))
static_files: static/\1
upload: static/.*
expiration: "1d"
# expiration: "1m"
- url: .*
script: main.py
- url: /_ah/mail/.+
script: lib/handler_mail.py
login: admin
以下是我修改过的main.py的摘录:
import os
# dummy, enables django template filters to be registered
os.environ[u'DJANGO_SETTINGS_MODULE'] = u'conf'
#` -2
# from google.appengine.dist import use_library
# use_library('django', '1.2')
from functools import wraps
from appengine_utilities.cache import Cache
from google.appengine.api import taskqueue
from google.appengine.ext.db import djangoforms
...
这是我日志中的追溯: Traceback(最近一次调用最后一次): 档案“/base/data/home/apps/s~cirrussecure1/5.354034990641807540/main.py”, 第23行,在 来自google.appengine.ext.db import djangoforms ImportError:无法导入名称djangoforms
我正在做的事情不会让我导入djangoforms但不会影响其他任何事情。我用Google搜索了,但似乎没有其他人出现问题(但是?)。感谢。
@all找到了一个让我继续使用gae / python 2.7的解决方案,但我不喜欢它,或谷歌处理这部分版本的方式。
我尝试了wtforms并且在调用足够之前尝试使用gae / python 2.5取得了一些进展。
然后我得到了djangoforms.py(来自http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/db/djangoforms.py),将其放入我的文件中,然后使用gae / python 2.7。
我使用了上面显示的app.yaml。也不得不改变 {{form_section}}至{{form_section | safe}} 在两个模板文件中。
我猜Django正在失去对gae团队的青睐。我能理解djangoforms是否被弃用了一年然后掉了下来。但是,在没有任何警告的情况下删除它,甚至在文档中提及任何提及。将当前版本与之前的版本进行比较对您的客户来说并不是一件好事。
@google请更新您的文档,文章,示例等,以便其他人不必像我一样浪费一天。
答案 0 :(得分:9)
Python 2.7不提供google.appengine.ext.db.djangoforms
模块。你可以自己修补一个副本,但更好的想法是修改你的表单处理代码而不是依赖它 - 它不受支持,坦率地说是一个黑客。
答案 1 :(得分:2)