Django models “Django模型”;索引器:列表索引超出范围“;皮德夫

Django models “Django模型”;索引器:列表索引超出范围“;皮德夫,django-models,Django Models,我在EclipsePydev中有一个Django项目 我有一个文件views.py,其中有一行: from models import ingredient2 在models.py中,我有: from django.db import models class ingredient2(models.Model): ingredient = models.CharField(max_length=200) 当我尝试运行应用程序时,出现以下错误: File "C:\Python

我在EclipsePydev中有一个Django项目

我有一个文件views.py,其中有一行:

from models import ingredient2
在models.py中,我有:

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条打印语句(是的,我可能不应该编辑Django的文件):

它们打印出:

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

models

模型

manage.py包含在bolig文件夹中。我认为正确的应用程序标签应该是“bolig”。这个应用程序在几个月前就开始工作了,现在,当我回到它的时候,有些地方不对劲。我一直在PyDev中创建其他项目。

嗯,这不是一个真正的答案,但是。。。我最终创建了一个新的django项目,然后复制了我的代码。这解决了问题

使用PyDev时,我还收到了
kwargs={“app_标签”:model_module.\uu名称\uu.split('.')[-2]}
错误。在我的例子中,项目在我尝试运行之前没有刷新。我一刷新它,一切又好了

在模型类定义中添加带有app_标签的元类:

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

我在使用Eclipse、Django和PyDev时遇到了这个问题。我需要在PyDev Package Explorer(左面板)中选择应用程序(而不是某些.py文件),然后单击“运行”以使一切正常工作。

在我的例子中,models.py包含模型

当我将模型导入到other.py时,比如views.py,当我运行views.py时,它不会引发错误

但当我运行models.py时,它会引发相同的错误


所以我不会在模型中运行。py

我有类似的东西

而不是

from models import ingredient2
尝试:

from your_app_name.models import ingredient2

这可能与您的问题相同:
from your_app_name.models import ingredient2