一个数据库的两个 Django 项目

我用 Django 构建了一个我所有客户都使用的仪表板。我想为自己构建一个内部仪表板,以便我可以监控他们的活动。它应该连接到与仪表板相同的数据库。我有一个关于如何做到这一点的问题:

我是否只是在 settings.py添加相同的数据库并在内部仪表板中重新定义模型

谢谢!如果有更好的方法可以做到这一点,请告诉我!

stack overflow Two Django Projects with One Database
原文答案
author avatar

接受的答案

多个 Django 项目可以共享一个数据库。这没有坏处。唯一要记住的是,为了简单起见,只有一个项目应该运行迁移。

您可以通过从原始应用程序运行以下命令来为内部应用程序生成 models.py 文件

python manage.py inspectdb > models.py

这允许您从现有数据库生成 Django 模型文件。默认情况下, inspectdb 使用 Model.Meta.managed = False 生成模型,即这个将使用生成的模型的特定应用程序不负责创建、删除或更新数据库表。在生成模型的情况下,您可能需要配置关系,因为 inspectdb 将所有关系生成为 ForeignKey 并生成 through 表来维护关系。您可能还需要根据您的要求提供 related_names

总之,您可以在多个 Django 项目中使用相同的数据库。更多内容在 docs


答案:

作者头像

simply 在终端中运行此代码并写入要访问数据库表的应用程序名称

python manage.py inspectdb > your_app_name/models.py