模型存在于不同数据库中的 Django 外键约束

Django foreign key constraint with Model that lives in different database

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

如果我仍然想从 AbstractAccessToken 扩展我的用户在不同的数据库中,Django 有什么方法允许我填充 user_id 外键列吗?或者我只需要保留它 null 并定义并让我的自定义 AccessToken class 定义其自己的不受约束的 external_user_id 列?

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