新手Django模型错误

时间:2015-12-21 23:55:20

标签: python django django-models django-views

使用Python 2.7.x + Django 1.9:

我使用django-admin startproject simple

创建了一个新的超简单Django骨架项目

作为一个完整性检查,我创建了一个views.py文件,其中包含一个简单的视图,可以输出一个" hello world"键入测试消息和到该视图的URL路由。我可以使用python manage.py runserver来运行它,它运行正常。

我用一个超级简单的Django ORM模型类创建一个models.py文件。仅供参考,我的目标是使用现有的表格和架构,因此我不希望ORM生成新的表格。

class SuperSimpleModel(models.Model):
    some_value = models.CharField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'model_test_table'

仅将import models添加到我的views.py代码会导致在使用python manage.py runserver的服务器启动时发生以下错误:

  

" RuntimeError:模型类simple.models.SuperSimpleModel没有声明一个显式的app_label,也不是   在INSTALLED_APPS中的应用程序中,或者在其之前导入   应用程序已加载。"

我认为我的应用程序没有正确初始化?我把这个问题归结为上述简单的可重复步骤。在上述步骤中,我settings.py没有改变任何内容。通常,我需要配置数据库,但我甚至可以重现错误。

2 个答案:

答案 0 :(得分:9)

您是正确的,因为您需要在此处修改设置。例如,请参阅this Django tutorial step

根据您在此处提供的内容,您似乎必须将'simple'添加到INSTALLED_APPS设置中。所以这个设置最终会看起来像这样:

INSTALLED_APPS = [
    'simple',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

请注意,鉴于您的PYTHONPATH设置如何,'simple'本身可能不合适。您可能需要为应用程序添加更具体的路径,如上面的教程步骤对'polls.apps.PollsConfig'所做的那样。

答案 1 :(得分:0)

我遇到了类似的问题,结果发现我的解释器有错误的Python路径设置。如果上一个答案没有帮助,请查看。它应包含manage.py所在目录的路径。