使用Django的多个数据库

时间:2019-05-24 15:52:07

标签: django

我大约有6个目标数据库,它们具有自己的Django管理数据和应用程序数据。现在,我正在不同主机上运行同一个Django应用程序的6个实例。我想做的是运行该应用程序的一个实例,但首先让用户选择他希望连接的数据库。我应该在哪里注入这个新代码,以便在尝试读取Django.core管理代码之前就可以找到它?

1 个答案:

答案 0 :(得分:0)

我仅将Django指定的数据库用于admin,然后重定向获得了“ factory”指定的数据库名称。此重定向的处理程序手动连接到正确的数据库。我现在有4个独立的远程数据库,以及一个本地管理数据库。 Django本身并没有真正在内部处理,因此这是一种解决方法。

def login_view(request):
    username = request.POST.get('username', '')
    password = request.POST.get('password', '')
    factory = request.POST.get('factory', '')

    user = auth.authenticate(username=username, password=password)
    if user is not None and user.is_active:
        # Correct password, and the user is marked "active"
        auth.login(request, user)
        # Redirect to a success page.
        return HttpResponseRedirect("/app/?factory={}".format(factory))