具有驻留在不同数据库中的Model的Django外键约束

时间:2018-10-03 05:59:09

标签: django django-models django-orm django-oauth

我正在尝试使用oauth2_provider库,该库为AccessToken提供了一个模型,该模型将外键转换为User模型。我的用户模型实际上将与OAuth2令牌模型位于不同的数据库中。我可以使用路由器来指导将哪个数据库用于特定模型,但是我得出的结论是Django不支持在其他数据库中使用模型的外键是正确的吗?

如果我仍然想使用其他数据库中的用户从AbstractAccessToken进行扩展,那么Django是否有办法允许我填充user_id外键列?还是只需要保留它null并定义并让我的自定义AccessToken类定义自己的不受约束的external_user_id列?

1 个答案:

答案 0 :(得分:0)

Django不支持跨多个数据库的任何ForeignKey操作。因此,正如您所建议的,我认为最好的办法是为用户提供自己的IntegerField并手动使用。不幸的是,如果第三方库中有许多内部代码希望将用户从数据库中拉出,则可能需要对第三方库进行很多摆弄。