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