【Django】关于”没有声明明确的app_label并且不在INSTALLED_APPS中的应用程序”错误的问题
错误内容 (错误信息)
当我尝试运行Django模块从数据库中获取数据时,出现了以下错误。
RuntimeError: Model class sample.models.Sample doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
原因和解决方案
有人说Sample模型没有正确地注册到Django应用程序中,或者没有指定app_label。应用程序的注册在settings.py文件的INSTALLED_APPS中进行,但我已经在这里写好了。
有一篇文章提到了通过显式地在模型中添加 app_label 这个选项来解决问题,我参考了它的方法并成功解决了。
通常情况下,Django会自动确定模型所属的应用程序,但在某些情况下可能无法自动判断。例如,这次我在应用程序目录外试验性地放置了一个用于获取数据的命令模块。因此,Django无法准确判断它属于哪个应用程序。
基于此,在下面补充app_label的内容。
from django.db import models
class Sample(models.Model):
class Meta:
app_label = 'sample' # ここを追加
db_table = 'sample'
app_label的值需要与INSTALLED_APPS内的Django应用程序名称匹配。