2011-10-17 20 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、google.appengine.ext.db輸入djangoformsから ImportError:名前のdjangoformsをインポートできません

私がやっていることは、djangoformsをインポートさせることはできませんが、何にも影響しません。私はそれを見つけましたが、誰も問題を抱えているようです(まだですか?)。ありがとう。


@allは私がGAE /のpython 2.7に行くが、私はそれまたはGoogleがリリースのこの部分を取り扱う方法が好きではありません保つ解決策を見つけました。

私は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を使用しました。 2つのテンプレートファイルの {{form_section}}を{{form_section | safe}} に変更する必要がありました。

私はDjangoがgaeチームに有利ではないと思います。私は、ジャンゴフォームが1年間廃止され、その後落ちたのかどうか理解できました。しかし、警告を出したり、文書内の言葉を削除したりすることは、現在のリリースを以前のものと単に比較することは、あなたの顧客にやっていいことではありません。

@google他の人が私のように一日を無駄にする必要がないように、あなたの文書、例文などを更新してください。

+3

devのサンドボックスでこれらのエラーを確認できましたか?私はそれらをプロダクションでのみ見ることができますが、私のdevサンドボックスはうまく動作し、デバッグのために迷惑です。 – dfrankow

+0

私は現在この問題を抱えています。私は、より多くのdjangoのパッチとwww.allbuttonspressed.comを使用したプレビューなどのより多くのdjangoフォームを見ています。特定のフォームフレームワークを選択すると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私は単にそれを避け、別のフォームとDBフレームワークを使用することをお勧めします。それらを統合することは難しいことではなく、モデルフォームには常にさまざまな制限や問題がありました。 –

+1

@NickJohnsonこれについて詳しく記事や記事を書いてください。私はapp-engine-patchを使っていますが、これはdjangoformsを使っていると思います。降りるには何が関係していますか? – dfrankow

関連する問題