2012-01-06 9 views
5

Eclipse PyDevにDjangoプロジェクトがあります。Djangoモデル "IndexError:リストのインデックスが範囲外" Pydev

が、私はラインを持っているファイルviews.pyを持っている:

models.pyで
from models import ingredient2 

私が持っている:

from django.db import models 
class ingredient2(models.Model): 
    ingredient  = models.CharField(max_length=200) 

私は、私は次のエラーを取得するアプリを実行しようとすると:

File "C:\Python27\lib\site-packages\django\db\models\base.py", line 54, in __new__ 
kwargs = {"app_label": model_module.__name__.split('.')[-2]} 
IndexError: list index out of range 

私はデータベースを同期させて、サーバーの実行を開始しました。

私はbase.pyに行き、2つのprint文(はい、私はおそらく、Djangoのファイルを編集しないでください)を追加しました:彼らは、プリントアウト

if getattr(meta, 'app_label', None) is None: 
      # 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__] 
      print model_module #ADDED 
      print model_module.__name__ #ADDED 
      kwargs = {"app_label": model_module.__name__.split('.')[-2]} 

を:

<module 'models' from 'C:\Users\Tine\workspace\slangen\slangen2\bolig\models.pyc'> 

models 

manage.pyが含まれていますboligフォルダ内にあります。私は正しいアプリのラベルは "bolig"と思う。アプリは数か月前に働いていましたが、今、私がそれに戻ったときに、何かが正しくないです。私はPyDevで他のプロジェクトを作成しています。

+1

同じ問題:http://stackoverflow.com/questions/4382032/defining-a-model-class-in-django-shell-fails – AJJ

答えて

0

まあ、答えはありませんが...私は新しいdjangoプロジェクトを作成し、私のコードでコピーしてしまいました。それは問題を解決しました。

0

PyDevを使用すると、私もkwargs = {"app_label": model_module.__name__.split('.')[-2]}エラーが発生しました。私の場合は、プロジェクトを実行しようとする前にリフレッシュされませんでした。私がそれをリフレッシュするとすぐに、すべてが再び良かった。

8

モデルクラス定義の内部app_labelでメタクラスを追加します。

class Foo: 
    id = models.BigIntegerField(primary_key=True) 
    class Meta: 
     app_label = 'foo' 
0

私は、Eclipse、ジャンゴとPyDevはを使用してこの問題に遭遇しました。 PyDevパッケージエクスプローラ(左パネル)でアプリケーションを選択して(たとえば、いくつかの.pyファイルの代わりに)、Runをクリックしてすべてが正しく機能するようにする必要がありました。私の場合は

-1

は、models.pyはモデル

私が実行したとき、私は、他の.pyにモデルをインポート、それは私がviews.py

を実行すると、エラーが発生しないのviews.py言うけど

が含まれていますmodels.py、同じエラーが発生します。

ので、私はちょうどmodels.py

3

で実行していないだろう、私が代わりに

from models import ingredient2 

試してみるの

似た何かを持っていた:これは、あなたかもしれ

from your_app_name.models import ingredient2 
+0

tha nks!私のために働いた –

関連する問題