django的新手:在创建模型时遇到错误

时间:2011-01-16 01:24:45

标签: python 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
>>>

2 个答案:

答案 0 :(得分:3)

包含模型的模块应该从Python解释器的角度命名为myapp.models。此错误意味着它只能解析为models

首先,包含此模型的Python模块需要位于PYTHONPATH上的Django application folder内。请按照教程中的说明尝试使用python manage.py startapp

如果模型模块肯定在应用程序文件夹中,请确保应用程序文件夹本身不是PYTHONPATH的一部分,只是包含它的项目文件夹。

为了帮助澄清,这里是django源中错误的上下文:

        # 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]}

答案 1 :(得分:1)

我认为您不应该在命令行解释器中定义模型,而是使用名为models.py的应用程序文件,因为之前的评论者说。 当django正在处理你的模型时,它试图解析模型的应用程序名称。在您的情况下,模型没有任何应用程序。因此,只需将模型放在myproject/myapplication/models.py文件中,然后您就可以在命令行解释器中创建模型实例。