在Django中导入模型
我该如何在settings.py文件的INSTALLED_APPS中导入所有模型?当我尝试在这里插入某个模型时,出现了一个错误:“没有名为app1_model的模型”。
-ProjectName
--ProjectName
---models
----__init__.py
----admin.py
----app_1_model
----....
----app_n_model
---templates
---__init__.py
---settings.py
---urls.py
---wsgi.py
--manage.py
^ 项目结构 ^
1 个回答
12
INSTALLED_APPS 是用来管理应用程序的,而不是模型。模型是你在应用程序里定义的类,通常放在 /«app_name»/models.py
这个文件里。
我觉得你可能对 Django 项目的结构有些误解。建议你找个教程来跟着做一遍。
一个典型的项目结构是:
/«project»/«app_name»/models.py
在设置文件中:
INSTALLED_APPS = [ ... '«app_name»' ... ]
你的路径会包含基础项目目录,这样你就可以在需要的地方导入你的应用程序。
使用它们的方法是:
from «app_name».models import *
虽然最好不要使用 import *
,而是直接指定你想导入的类。
关于评论中的问题:
如果你不喜欢把所有模型都放在一个文件里的做法(虽然这样做是很正常的),你可以创建一个叫做 models 的模块。具体做法是,创建一个名为 /«project»/«app_name»/models
的文件夹,在里面放一个 __init__.py
文件(用来声明这是一个模块),然后在这个文件夹里创建你的其他文件。接着,你需要在 __init__.py
文件中导入这些文件的内容。你可以了解一下 Python 模块的相关知识。
关于第二个评论的问题:
如果你想在管理后台查看模型,你需要创建一个 admin 文件,里面包含模型的管理对象。
最后:
请认真阅读教程,以确保你对 Django 有全面的理解。否则,你就是在浪费自己的时间!