syncdb 不创建表模型
我正在用Django框架开发一个网页应用。我的项目结构是这样的:
项目
- 网页应用
- 模型
- models.py
- 模型
- 工具
- settings.py
- urls.py
- views.py
- 网页应用
我在models.py
文件中定义了我的模型。在我的设置文件中,我在INSTALLED_APPS
里添加了这一行project.web_app
。当我这样做的时候,
python mange.py syncdb
模型没有被创建。为了创建它们,我必须在设置文件中添加project.web_app.models
。我查看了其他项目,他们并没有这样做,但他们的项目却能正常工作。请问我这样做是对的吗?
2 个回答
0
首先,把你的应用程序添加到 INSTALLED_APPS
中,然后运行
python manage.py inspectdb > somefile.txt
你可以快速检查一下你的数据库结构是否和你的 Django 模型匹配。
如果 python manage.py inspectdb > somefile.txt
没有生成任何结构,那就确保你的应用程序已经添加到 INSTALLED_APPS
里。
4
models.py 文件应该放在你的应用文件夹里(在你的例子中是 "web_app")。
如果你想把模型分开管理,那么你需要把模型文件夹变成一个 Python 包。这样的话,你需要在那个文件夹里添加一个 __init__.py
文件,并确保在这个初始化文件中,你的模型可以通过 "web_app.models.ModelName" 的路径被外部访问。
所以,解决方案 1(标准的 Django 方法)是:
- 项目结构
- web_app
- models.py
解决方案 2:
- 项目结构
- web_app
- models
__init__.py
- ModelOne.py
- ModelTwo.py...
这个 __init__.py
文件里会包含一些内容,比如:
from .ModelOne import ModelOne
from .ModelTwo import ModelTwo
方法 N2 也可以用在视图和其他东西上哦;)