我想使用 Django admin 浏览现有数据库,但我想确保我或 Django 不会对该数据库进行任何修改。
出于这个原因,我认为我应该使用两个数据库,一个是只读的,一个是存储其他 django 表的数据库,一个是我具有读写访问权限的数据库。
我知道如何在其中定义多个数据库,settings.py
但我不知道如何强制 django 为特定模型使用另一个数据库。
我想使用 Django admin 浏览现有数据库,但我想确保我或 Django 不会对该数据库进行任何修改。
出于这个原因,我认为我应该使用两个数据库,一个是只读的,一个是存储其他 django 表的数据库,一个是我具有读写访问权限的数据库。
我知道如何在其中定义多个数据库,settings.py
但我不知道如何强制 django 为特定模型使用另一个数据库。
作为对manji
答案的补充 - 您还可以使用数据库视图并将一些表公开为只读表。在 Django 中使用 VIEW 是一种强大的技术,它允许将任意复杂的查找公开为 Django 模型。
在您的情况下,您可以例如使用 VIEWs 镜像原始数据库中的相关表创建额外的数据库,并创建额外的 Django 项目,只为这些表启用管理员 - 或类似的东西(您比我更了解您的用例)。
您可以使用Automatic database routing
为每个模型配置读/写操作数据库
或者
您还可以使用查询集的参数自定义管理界面读/写操作数据库(在 Django 的管理界面中公开多个数据库)using
。
在这两种情况下,将读/写数据库设置为默认值(django 模型将保存在那里)并将查询显式路由到模型的只读数据库。