在Django中使用request.META.get('HTTP_REFERER')进行URL反向解析

2 投票
1 回答
5987 浏览
提问于 2025-04-18 17:38

我在我的模板里有一个表单,当这个表单提交后,我想把用户重新导向到最初那个表单所在的网页,并且带上一些参数。

这是我现在的做法:

if request.method == 'POST':
    ...
    url = reverse(request.META.get('HTTP_REFERER', '/'), kwargs={'groups': groups, 'product': product})
    return HttpResponseRedirect(url)

但是这样会出现一个错误。

u'http' is not a registered namespace

那我该怎么做呢?

1 个回答

2

reverse 需要一个视图名称。

你可以这样做,但这样会失去大部分参数,除非你用某种方式把它们变成字符串。

url = "{0}/{1}".format(request.META.get('HTTP_REFERER', '/'), your_args)

return HttpResponseRedirect(url)

或者你可以决定当前要重定向的视图总是重定向到同一个地方,也就是。

url = reverse('form_landing_view', kwargs={'groups':groups, 'product': product})

第三种选择是使用 resolve()

撰写回答