我有一个基于函数的视图,仅用于更新会话:
def admin_privileges(request):
// toggle request.session['is_admin']
return
通常,我用它来在True
和False
之间切换会话变量。
例如在模板中:
<a href="{% url 'admin_privileges' %}">Toggle admin privileges</a>
如何传递变量并修改return
中的admin_privileges
,以使用户返回到请求它的原始视图?
我不想在前端使用任何东西,也不能使用HTTP_REFERRER
,因为它并不总是设置的。
我想从引用视图通过URL传递某些内容吗?
答案 0 :(得分:0)
有2种方法:
您可以在视图中使用request.META.get('HTTP_REFERER')
,这将返回上一页。
或(更安全的是check this link to learn why)
您可以将链接(当前页面的request.path)作为参数传递给admin_privileges链接,这样:
<a href="{% url 'admin_privileges' %}?back={{ request.path }}">Toggle admin privileges</a>
在视图中,您可以使用request.GET获取该参数,并使用Django的重定向实用程序进行重定向。