我正在编写一个应用程序,用户可以在其中输入3种不同的信息: 客户密钥,用户名,密码。 每个customerkey都指向一个单独的数据库。 所以我为此编写了一个customauthbackendend,但是遇到了我无法真正解决的问题。
只要我使用return User.objects.using('505473').get(pk=user_id)
将customerkey硬编码到get_user函数中,身份验证就可以正常工作
但是当我不这样做时,我在调用{% if user.is_authenticated %}
时总是在模板中得到错误的信息。
当您呼叫{% if user.is_authenticated %}
/ get_user时,是否可以选择说出他需要呼叫哪个数据库?
customAuthBackend:
class CustomAuthBackend(ModelBackend):
def authenticate(self, request, username=None, password=None, **kwargs):
user = User.objects.using(request.POST['customerkey']).get(username=username)
if user is not None:
return user
def get_user(self, user_id):
try:
return User.objects.using('505473').get(pk=user_id)
except User.DoesNotExist:
return None