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