Python Django在我的主数据库是Mongo时访问Admin时出现问题

Python Django在我的主数据库是Mongo时访问Admin时出现问题,python,django,admin,Python,Django,Admin,我刚刚使用Django和Python,我正在从事一个尚未启动的项目 默认数据库是MongoDB,我有用户,可以在应用程序的登录页面中进行身份验证 现在,我们安装了一个“帮助台”应用程序,这是一个票务系统,我们想使用在我们的项目中禁用的管理员。 我在设置和Url中添加了管理员应用程序,但我没有访问任何用户的权限 我试图使用python manage.py createsuperuser创建超级用户,但它给出了以下错误: 在/admin处键入错误/ int()参数必须是字符串、类似对象的字节或数字,

我刚刚使用Django和Python,我正在从事一个尚未启动的项目

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

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

我试图使用python manage.py createsuperuser创建超级用户,但它给出了以下错误:

在/admin处键入错误/ 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的helpdesk DB访问用户

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

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, model, **hints):
    if model._meta.app_label == 'helpdesk'or model._meta.app_label == 'sites' or model._meta.app_label == 'admin':
        return 'helpdesk'
    return 'default'

有什么帮助吗?

您正在创建的应用程序是“管理员”吗?django有一个内置的管理系统。我不知道你指的是什么。还有,也许这会有帮助@是的,对不起,我指的是Django的内置管理系统。我已经阅读了这个多数据库文档,并编写了我自己的数据库路由器,其中我说如果app_label='sites'或'admin'转到'helpdesk'数据库,该数据库是sqlite,但无论如何我无法与任何用户访问admin django页面。有更新吗?为了澄清,我的主应用程序使用MongoDB,我使用SQLite数据库使用“helpdesk”应用程序,但我无法与任何用户一起访问Django附带的管理应用程序。您能验证您的数据库中是否存在该用户吗?除此之外,我恐怕帮不了你,因为我以前从未将django与两个单独的DB系统一起使用过。这就是问题所在。即使我在我想要的数据库中手动创建一个用户,admin也总是尝试连接到Mongo数据库(我使用MongoEngine)。