我的主数据库为Mongo时,访问Admin的Django问题

我对使用Django和Python还是很陌生,我正在研究一个尚未启动的项目。

默认数据库是MongoDB,我在其中拥有用户,可以在应用程序的登录页面中进行身份验证。

现在,我们安装了一个票务系统“帮助台”应用程序,我们想使用在项目中禁用的Admin。 我在“设置和网址”中添加了“管理”应用程序,但没有任何用户的访问权限。

我试图用python manage.py createsuperuser创建一个超级用户,但这给了我这个错误:

  / p /中的

TypeError   int()参数必须是字符串,类似字节的对象或数字,而不是'ObjectId'

在django / contrib / auth中,我们进行了一些更改,例如:

def _get_user_session_key(request):
# This value in the session is always serialized to a string,so we need
# to convert it back to Python whenever we access it.
if SESSION_KEY in request.session:
    return ObjectId(request.session[SESSION_KEY])

在显示此ObjectId的地方,似乎管理员正在尝试从MongoDB而不是SQLite的帮助台数据库访问用户。

可能我的问题是我对混合数据库和访问不了解。 我创建了具有以下功能的路由器:

class RouterDB:
def db_for_read(self,model,**hints):
    print(model._meta.app_label)
    if model._meta.app_label == 'helpdesk' or model._meta.app_label == 'sites' or model._meta.app_label == 'admin':
        return 'helpdesk'
    return 'default'

def db_for_write(self,**hints):
    if model._meta.app_label == 'helpdesk'or model._meta.app_label == 'sites' or model._meta.app_label == 'admin':
        return 'helpdesk'
    return 'default'

有帮助吗?

xin11230 回答:我的主数据库为Mongo时,访问Admin的Django问题

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3159915.html

大家都在问