syncdb 不创建表模型

0 投票
2 回答
776 浏览
提问于 2025-04-18 04:44

我正在用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 也可以用在视图和其他东西上哦;)

撰写回答