如何重定向以使用新上下文而不是Django的源上下文?

2024-04-20 01:50:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用decorator检查用户是否登录,并重定向到登录页面并提醒用户。我想使用上下文参数化渲染模板。如何编写代码

def check_login(func):
    def wrapper(request, *args, **kwargs):
        if request.session.get("unique_id"):
            return func(request, *args, **kwargs)
        else:
            context = {'title': 'login', 'not_login': 1}
            return redirect(reverse('login'), context=context)
    return wrapper


# view.py
def login(request):
    context = {'title': 'login', 'not_login': 0}
    return render(request, 'login.html', context)

代码是这样的。如果用户获得登录页面,模板使用not_login=0,如果请求来自重定向,模板使用not_login=1


Tags: 代码用户模板returnrequestdefcontextnot