如果您的POST请求不应该重新加载相同的页面,您应该始终重定向(请参阅PRG)。所以我假设你的意思是你想在成功提交时重定向到相同的视图。
就可以得到当前登录的用户与request.user
,所以你可能想尝试这样的事:
from django.shortcuts import render, redirect
def some_view(request):
form = SomeForm(request.POST or None)
if form.is_valid():
# do something
return redirect('/accounts/{}'.format(request.user))
return render(request, 'form.html', {'form': form})
但是,它会更好,如果你有一个名为帐户URL模式:
现在
url('/accounts/(?P<username>\w+)/$', 'some.view', name='user-home')
,你可以这样做:
def some_view(request):
form = SomeForm(request.POST or None)
if form.is_valid():
# do something
return redirect('user-home', username=request.user)
return render(request, 'form.html', {'form': form})
伟大的答案。谢谢。 – stephan 2014-12-08 22:08:28