2011-10-17 76 views
11

如果我將使用djangoforms的處理程序註釋掉,其他所有工作似乎都可以工作。Google App Engine,Python 2.7運行時,ImportError:無法導入名稱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 
... 

這裏的跟蹤從我的日誌後面: 回溯(最近呼叫最後): 文件「/base/data/home/apps/s~cirrussecure1/5.354034990641807540/main.py」, 第23行, from google.appengine.ext.db import djangoforms ImportError:無法導入名稱djangoforms

我正在做的事情不會讓我導入djangoforms,但不會影響其他任何東西。我谷歌搜索,但沒有人似乎有問題(還?)。謝謝。


@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請更新您的文檔,文章,示例等,這樣其他人就不必像我一樣浪費一天時間。

+3

您是否能夠在您的dev沙箱中看到這些錯誤?我只在生產環境中看到它們,但我的開發沙箱工作正常,這很煩人的調試東西。 – dfrankow

+0

我目前也遇到了這個問題,我正在尋找更多的Django中的任一補丁和更多的django形式,比​​如使用www.allbuttonspressed.com的預覽等,或者像Nick Johnson說的那樣選擇特定的表單框​​架 –

回答

9

google.appengine.ext.db.djangoforms模塊沒有提供Python 2.7。你可以自己修改一個副本,但更好的辦法是修改你的表單處理代碼,不要依賴它 - 它不受支持,坦率地說有點破解。

+1

感謝您確認。我正在考慮嘗試修補它。我嘗試使用django.forms,但在獲取ModelForm和Meta工作時遇到問題(https://docs.djangoproject.com/en/dev/topics/forms/modelforms/) 。一些例子會非常有幫助。這可能的重新工作:http://code.google.com/appengine/articles/djangoforms.html? –

+1

@CirrusSecure我建議簡單地避免它,並使用單獨的窗體和數據庫框架。整合它們並不難,模型一直有許多限制和問題。 –

+1

@NickJohnson關心提供一個更深入的文章或關於這方面的文章?我在應用引擎補丁,我認爲它使用djangoforms。牽涉什麼? – dfrankow

相關問題