将包含所有数据的 POST 请求重定向到 url
Redirect a POST request with all the data to a url
有没有办法将 POST 请求重定向到另一个包含所有数据的 URL。
# views.py
@verified_email_required
def user_page(request, pk, username):
if request.method == 'POST':
if request.POST.get('_name', '') == 'toggle_pin':
auth_profile = Profile.objects.filter(user=request.user).first()
profile = Profile.objects.filter(pk=int(request.POST.get('profile', ''))).first()
fav = Favourite.objects.filter(profile=auth_profile, pinned_profile=profile).first()
if fav.pinned == True:
fav.pinned = False
else:
fav.pinned = True
fav.save()
return JsonResponse(data={
'status': fav.pinned,
})
# page profile (Profile of the user who's page being is visited)
# (also give 404 error if user does not exists)
page_user = get_object_or_404(User, pk=pk)
if (page_user.username != username):
return redirect(f'/u/{page_user.pk}-{page_user.username}/')
# page profile
page_profile = Profile.objects.filter(user=page_user).first()
context = {
'page_profile': page_profile,
}
return render(request, 'user/profile.html', context)
@verified_email_required
def redirect_profile_page(request, pk):
if request.method == 'POST':
# storing the POST data in session is not a good practice
# Waht can we do else
request.session['_old_post'] = request.POST
return redirect(f'/u/{page_user.pk}-{page_user.username}/')
page_user = get_object_or_404(User, pk=pk)
return redirect(f'/u/{page_user.pk}-{page_user.username}/')
在 redirect_profile_page
视图中,我根据 GET 请求将用户重定向到 user_page
视图。
如何在 POST 请求中执行此操作?
非常感谢任何帮助!
谢谢。
无需在 POST 上重定向,您可以直接调用其他视图函数:
@verified_email_required
def redirect_profile_page(request, pk):
page_user = get_object_or_404(User, pk=pk)
if request.method == 'POST':
return user_page(request, pk, page_user.username)
...
另一个视图将处理并执行重定向。
如果您真的想重定向,可以使用 HTTP status code 307,它将使用相同的方法和数据进行重定向。
有没有办法将 POST 请求重定向到另一个包含所有数据的 URL。
# views.py
@verified_email_required
def user_page(request, pk, username):
if request.method == 'POST':
if request.POST.get('_name', '') == 'toggle_pin':
auth_profile = Profile.objects.filter(user=request.user).first()
profile = Profile.objects.filter(pk=int(request.POST.get('profile', ''))).first()
fav = Favourite.objects.filter(profile=auth_profile, pinned_profile=profile).first()
if fav.pinned == True:
fav.pinned = False
else:
fav.pinned = True
fav.save()
return JsonResponse(data={
'status': fav.pinned,
})
# page profile (Profile of the user who's page being is visited)
# (also give 404 error if user does not exists)
page_user = get_object_or_404(User, pk=pk)
if (page_user.username != username):
return redirect(f'/u/{page_user.pk}-{page_user.username}/')
# page profile
page_profile = Profile.objects.filter(user=page_user).first()
context = {
'page_profile': page_profile,
}
return render(request, 'user/profile.html', context)
@verified_email_required
def redirect_profile_page(request, pk):
if request.method == 'POST':
# storing the POST data in session is not a good practice
# Waht can we do else
request.session['_old_post'] = request.POST
return redirect(f'/u/{page_user.pk}-{page_user.username}/')
page_user = get_object_or_404(User, pk=pk)
return redirect(f'/u/{page_user.pk}-{page_user.username}/')
在 redirect_profile_page
视图中,我根据 GET 请求将用户重定向到 user_page
视图。
如何在 POST 请求中执行此操作?
非常感谢任何帮助!
谢谢。
无需在 POST 上重定向,您可以直接调用其他视图函数:
@verified_email_required
def redirect_profile_page(request, pk):
page_user = get_object_or_404(User, pk=pk)
if request.method == 'POST':
return user_page(request, pk, page_user.username)
...
另一个视图将处理并执行重定向。
如果您真的想重定向,可以使用 HTTP status code 307,它将使用相同的方法和数据进行重定向。