所以我开始一个新的Django项目,基本上需要登录&注册过程通过EXTERNAL& ALREADY创建了数据库。
当Django为:
时,是否可以让User模型使用EXTERNAL数据库表?我希望Django服务器的其余部分使用本地数据库。
如果是这样,有人可以提供示例或指导我有关该主题的文档吗?
答案 0 :(得分:1)
使用Django的多个数据库的最简单方法是使用数据库路由。默认情况下,Django坚持使用单个数据库,但是,如果要实现更有趣的数据库路由系统,可以定义并安装自己的数据库路由器。
使用DATABASE_ROUTERS设置安装数据库路由器。您必须在settings.py文件中指定此设置
你需要做的就是编写一个AuthRouter,如Django文档所述Django Multiple Database
答案 1 :(得分:0)
"是的,但"
您在文档中寻找的内容称为" database router"。 在那里的文档中甚至还有一个auth app的例子。
但是,采用这种方法存在严重缺陷:
我们不能在模型中建立跨数据库关系。如果auth表位于单独的数据库中,这意味着需要用户模型的外键的任何otehr应用程序都会遇到问题。你可能能够"假"使用不强制执行关系检查的数据库的关系(SQLite或MyISAM / MySQL)。
开箱即用,此类应用程序包括:会话,authtoken和admin(可能还有更多)。
或者,单点登录解决方案可能会做得更好:django-sso,或django-mama-cas + django-cas-ng,或商业Stormpath。