2011-01-16 14 views
1

hello
モデルクラスを作成するときにエラーが発生しました(以下のコードをチェックしてください)。私は公式のdjangoのウェブサイトのチュートリアルに従っていますが、それは何らかの理由で動作していないので、私はしばらくの間、苦労していますが、結果はありません。私がやっていることに何か間違っていますか?djangoの新機能:モデルを作成するときにバグがあります

>>> class a(models.Model): 
...  pass 
... 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\django-1.1.2-py2.7.egg\django\db\models\base.py", line 52, in __new__ 
    kwargs = {"app_label": model_module.__name__.split('.')[-2]} 
IndexError: list index out of range 
>>> 
+0

djangoチュートリアルでは、クラス名が小文字の「a」で始まるクラスがありますか? – miku

+0

チュートリアルで(人)ではない(a)、しかしそれほど異なることはありません..クラス名は問題ではなく、それは(models.Model)です。 –

答えて

1

私はあなたがコマンドラインインタプリタであなたのモデルを定義しますが、以前のコメンターが言ったようにmodels.pyという名前のアプリケーションファイルを使用してはならないと思う:明確化を支援するために

は、ここではDjangoのソース内のエラーの文脈です。 djangoがモデルを処理しているときに、モデルのアプリケーション名を解析しようとしています。あなたのケースでは、モデルにはアプリケーションがありません。したがって、あなたのモデルをmyproject/myapplication/models.pyファイルに置き、コマンドラインインタプリタでモデルのインスタンスを作成することができます。

3

あなたのモデルを含むモジュールはPythonインタプリタの視点からmyapp.models名前を付ける必要があります。このエラーは、それがただmodelsとして解決していることを意味します。

まず、このモデルを含むPythonモジュールは、PYTHONPATHにあるDjango application folderの内部にある必要があります。チュートリアルの説明に従ってpython manage.py startappを試してください。

モデルモジュールがアプリケーションフォルダ内にある場合は、アプリケーションフォルダがPYTHONPATHに含まれていないことを確認してください。

 # Figure out the app_label by looking one level up. 
     # For 'django.contrib.sites.models', this would be 'sites'. 
     model_module = sys.modules[new_class.__module__] 
     kwargs = {"app_label": model_module.__name__.split('.')[-2]} 
関連する問題