我在Eclipse PyDev中有一个Django项目.
我有一个文件views.py,其中包含以下行:
from models import ingredient2
Run Code Online (Sandbox Code Playgroud)
在models.py我有:
from django.db import models
class ingredient2(models.Model):
ingredient = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行该应用程序时,我收到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
我确实同步了数据库并启动了服务器运行.
我进入了base.py并添加了2个打印语句(是的,我可能不应该编辑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]}
Run Code Online (Sandbox Code Playgroud)
他们打印出来:
<module 'models' from 'C:\Users\Tine\workspace\slangen\slangen2\bolig\models.pyc'>
models
Run Code Online (Sandbox Code Playgroud)
manage.py包含在bolig文件夹中.我认为正确的应用标签将是"bolig".该应用程序几个月前就已经运行了,现在,当我回到它时,有些事情是不对的.我一直在PyDev中创建其他项目.
小智 8
在模型类定义中添加一个带有app_label的元类:
class Foo:
id = models.BigIntegerField(primary_key=True)
class Meta:
app_label = 'foo'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4287 次 |
| 最近记录: |