我正在建立一个需要年龄门的网页。为此,我使用Django会话。该视图检查年龄门是否已通过,否则将用户重定向回年龄门。在用户通过年龄门后,我想将他们重定向回他们来自的页面。我该怎么做?我试过使用request.META.get('HTTP_REFERER')
,但没有用。我的观点是这样的:
`def main_view(request):
if request.session.has_key('agegate'):
random_category = random.choice(Category.objects.all())
random_picture = random.choice(CoreImages.objects.all())
context = {
'image' : random_picture,
'category' : random_category,
'bottles': Bottle.objects.all(),
}
return render(request,'Academy/home.html', context)
else:
return redirect('/preview/agegate')`
年龄门视图看起来像这样:
def age_gate_view(request):
next_url = request.META.get('HTTP_REFERER')
form = AgeGateForm()
if request.method == 'POST':
form = AgeGateForm(request.POST or None)
if form.is_valid():
form.save()
request.session['agegate'] = 'welcome'
return HttpResponseRedirect(next_url)
context = {
'form':form,
}
return render(request,'Academy/agegate.html', context)
1条答案
按热度按时间r6hnlfcb1#
在Django中,有一个使用
next
url参数来跟踪原始url的约定。所以,你可以这样做:
接下来,在age-gate视图中,您可以读取
next
参数的值以重定向到原始url。