我有一张我用这个链接显示的城市卡片:
/<country_name>/<city_name>
我可以从两个不同的链接访问此卡:
/<country_name>/
/<country_name>/pick-cities
当卡片被打开时,我想返回之前访问过的网址(两个下面的一个)。 我已经使用了一个目标,我会影响到一个人:
target = request.META['HTTP_REFERER']
但问题是当我在卡片上做出一些动作然后request.META['HTTP_REFERER']
成为卡片的网址! (如JavaScript中的history.back()
)
还有其他方法可以链接回访问过的网址吗?
答案 0 :(得分:0)
您可以在会话中保存request.META['HTTP_REFERER']
并在需要时使用它。
只有当您访问与当前网址不同的网址时才存储它,因此您在编辑时不会保存它。
像
这样的东西def city_card(request):
# do your stuff
if not request.session.get('REFERRER') and request.session['REFERRER'] != request.path
request.session['REFERRER'] = request.path
# use request.session['REFERRER'] when you want to redirect there
注意:您可能必须使用request.path
以外的其他内容进行实际网址验证。