有很多關於Django和該reverse()
方法的文檔。我似乎無法找到我確切的問題。假設我有兩個的URLconf像這樣:Django的不顯示正確的URL後扭轉
url(r'ParentLists/$', main_page, name = "main_page"),
url(r'ParentLists/(?P<grade_level>.+)/$', foo, name = "foo")
和兩個對應的觀點是這樣的:
def main_page(request):
if request.method == 'POST':
grade_level = request.POST['grade_picked']
return HttpResponseRedirect(reverse('foo', args = (grade_level,)))
else:
return render(request, 'index.html', context = {'grade_list' : grade_list})
def foo(request, grade_level):
grade_level = request.POST['grade_picked']
parent_list = # get stuff from database
emails = # get stuff from database
return render(request, 'list.html', context = {'grade_list' : grade_list, 'parent_list' : parent_list})
這裏,list.html
只是伸出我的基本模板index.html
,其中包含一個下拉框級水平。當用戶進入/ParentLists,則main_page
視圖呈現的index.html與下拉框中,因爲它應該。
當用戶挑選從下拉框中選擇一個年級水平(比如5年級),此範本的表單提交,並main_page
再次執行 - 但這次郵局支局運行和HttpResponseRedirect
將用戶帶到/ParentLists/05。這隻會導致在下拉框下面顯示屬於5級的HTML表格。
的問題是,當用戶選擇現在說的10年級,表更新,以顯示10級的內容,但顯示的URL仍然是/ParentLists/05。我想這是/ParentLists/10。
顯然,第一個選擇之後,main_page
視圖不會再執行。只有foo
做...等HttpResponseRedirect
不會被調用。我應該如何重組這個來獲得我正在尋找的東西?提前致謝!
非常感謝你們兩位。我今天下午再看一遍,看看你的建議是否有幫助! –
很好地工作,非常感謝!歡迎您 –
@PatJones! – neverwalkaloner