Django-Allauth,多重登录重定向网址

时间:2016-10-21 15:25:15

标签: django

我有一个问题,如何在我的不同用户的设置或视图中添加多个LOGIN_REDIRECT_URL。 例如,我有:管理员,人力资源,教师,学生......等 并且对于每个我需要重定向到不同的URL,面板管理员为Admin等。 我需要添加组?或不? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

django-allauth从帐户适配器中定义的方法get_login_redirect_url获取登录重定向网址,您可以定义自定义适配器并覆盖它:

<强>程序my_app / adapter.py

from allauth.account.adapter import DefaultAccountAdapter

class AccountAdapter(DefaultAccountAdapter):
    def get_login_redirect_url(self, request):
        url = super(AccountAdapter, self).get_login_redirect_url(request)
        user = request.user
        '''
        # pseudocode, change it to actual logic
        # check user role and return a different URL
        role = get_user_role(user)
        if role == 'student':
            url = student_login_redirect_url
        if role == 'teacher':
            url = teacher_login_redirect_url
        '''
        return url

现在告诉allauth通过在ACCOUNT_ADAPTER中定义settings.py来使用我们的自定义适配器:

ACCOUNT_ADAPTER = 'my_app.adapter.AccountAdapter'