5

Django 1.5.1、Python 2.7.2、および IPython 0.13.2 を実行しています。Django プロジェクト ディレクトリ内から「python ./manage.py shell」を実行すると、次のエラーが発生します。

from django import forms
class CommentForm(forms.Form):
    name = forms.CharField()

NameError: name 'forms' is not defined.

「dir(forms)」を実行するとわかるように、フォームが定義されていることを知っています。このエラーは、REPL 内で iPython を実行している場合にのみ発生することに気付きました。REPL を開始し、単純な古い Python インタープリターのみを使用すると、エラーは発生しません。

他の誰かがこの問題を経験しましたか? もしそうなら、なぜそれが起こっているのか、そして回避策があるかどうか知っていますか?

クラス内にメタクラスを作成し、「app_label」変数を定義するまで、過去に REPL でクラスを作成する際に問題があったことを付け加えておきます。それはこの状況では違いがありませんでした。

ありがとう。

4

1 に答える 1

8

django 1.5 は IPython を正しく起動しません。これはmasterで修正されていますが、修正は 1.5.1 にバックポートされていません。そのパッチを手動で core/management/commands/shell.py に適用すると、IPython は期待どおりに動作するはずです。

于 2013-04-07T21:04:53.703 に答える