私は解決策を見つけることができない問題に直面しています。私はすべてのページで利用可能なボタンをナビゲーションバーに持っており、それはあるコンテンツを作成するボタンです。ボタンとリンクPOSTリクエスト後にDjangoの前のページにリダイレクトする方法
ビュー:
def createadv(request):
uw = getuw(request.user.username)
if request.method =='POST':
form = AdverForm(request.POST, request.FILES)
if form.is_valid():
form.instance.user = request.user
form.save()
return HttpResponseRedirect('/', {'username': request.user.username, 'uw': uw})
args = {}
args.update(csrf(request))
args['username'] = request.user.username
args['form'] = AdverForm()
args['uw'] = uw
return render_to_response('createadv.html', args)
あなたは、私は常にコンテンツを作成した後、メインページ「/」にリダイレクト今見ることができますが、私は私がの作成を開始しましたのページに戻りたい場合はコンテンツ。クライアントは、(プライベート/シークレットブラウザウィンドウを使用して、例えば)リファラー情報を送信無効の場合は、これは動作しないこと
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
注:
私は要求を追加.META.get( 'HTTP_REFERER'、 '/')HttpResponseRedirectで、残念ながらそれは役に立たなかった。この場合、私は "createadv"ページにとどまります。 – Oleg
間に余分なリダイレクトがある可能性があります。 'form action =" ... "'タグの末尾にスラッシュがあることを確認してください。たとえば、 'action ="/createadv/"'のようにしてください。 – Selcuk
フォームをPOSTすると、 'HTTP_REFERER'はフォームを送信したページです。この場合、実際には同じページです。 –