我迷失在這裏。我對django相當陌生,也許這是一個新手問題。 我有一個非常簡單的列表視圖,顯示在數據庫中的記錄和創建視圖來添加這些對象:當表單動作設置爲「。」時,Django將重定向到不同的視圖。
@login_required
def list_view(request):
objects = Foo.objects.all()
ctx = {'objects': objects}
return render_to_response('main/foos.html', ctx,
context_instance=RequestContext(request))
@login_required
def create_view(request):
if request.method == 'POST':
form = FooForm(request.POST)
if form.is_valid():
form.save()
return redirect('/foos/')
else:
form = FooForm()
ctx = {'form': form}
return render_to_response('main/foo_form.html', ctx,
context_instance=RequestContext(request))
的foo_form.html模板看起來是這樣的:
<!DOCTYPE html>
<html>
<head>
<title>Club</title>
</head>
<body>
<form action="." method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Confirm/>
</form>
</body>
</html>
網址設置:
urlpatterns = patterns('',
url(r'^foos/$', 'list_view'),
url(r'^foos/new$', 'create_view'),
)
當我輸入URL「localhost:8000/foos/new」時,創建視圖按預期獲取GET請求。問題是,在提交表單,我重定向到列表(使用調試器,我發現的要求越來越向list_view),甚至當表單動作設置爲「」 我在做什麼錯? create_view視圖應該接收POST請求。 任何幫助表示讚賞!同樣,我很抱歉,如果這是一個新手的問題
應該不是問題。默認情況下,django將結尾符號放在那裏。 –
@Games Brainiac - 不正確,Django不會將正斜槓添加到正則表達式中,只會將url自身添加到正則表達式中。我的回答是正確的,很容易在我的開發環境中複製。添加尾部斜線修復了問題。 – professorDante
是的,你說得對.. – Alvaro