【问题标题】:Django signals redirectDjango 信号重定向
【发布时间】:2016-06-30 20:41:14
【问题描述】:

当用户登录时,我检查它是否属于特定组,如果是,我会重定向到特定页面,这是我的代码 apps.py:

def OperatorRedirect(sender, user, request, **kwargs):
    from struttura_employee.models import EmployeeUser, EmployeeGroup

    u = get_object_or_404(EmployeeUser,username=user.username)
    groups = u.get_groups()
    g = get_object_or_404(EmployeeGroup,long_name="Operatore")
    if g in groups:
        print("sei un operatore")
        return HttpResponseRedirect(reverse('qrs_machine_panel:asset_choice', args=[]))

class QrsofmanMachinePanelConfig(AppConfig):
    name = 'qrsofman_machine_panel'
    print("ciao")
    user_logged_in.connect(OperatorRedirect)

问题是 HttpResponseRedirect 被忽略了 有什么想法吗?

【问题讨论】:

    标签: django python-3.x redirect


    【解决方案1】:

    这不是你可以在信号中做的事情。这些用于在发生特定操作时更新数据库行或发送电子邮件。它们不会以任何方式影响响应,因为这是由视图管理的。

    您的重定向代码需要移动到登录视图本身;致电auth.login() 后进行检查。

    【讨论】:

    • 除了 Daniel 提到的,你还应该在登录视图中使用 user_passes_test 装饰器;否则用户只需键入受限视图的 URL。
    猜你喜欢
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    相关资源
    最近更新 更多