2014-03-04 40 views
0

我通常沒有很多django表單提交的麻煩,但我似乎無法弄清楚我的代碼工作不正確。在stackoverflow完成一些閱讀,但沒有運氣。甚至沒有提交表單也沒有提交表單動作參數明確設置

在我的模板,我定義這是一個Twitter的引導模式中呈現的一種形式,

<div class="modal-body"> 
<form method="post" action="{%url 'item_order' item.id %}"> 
    <input class="btn btn-large btn-success" type="submit" name="submit" value="add to order"/> 
</form> 

在窗體標題,我想明確地有形式提交這一觀點,

def show_item(request,id): 
    a = Item.objects.get(pk=id) 
    if request.method == 'POST': 
     form = partial_order_item_form() 
     final_form = form(request.POST) 
     # check validation of posted data 
     if final_form.is_valid(): 
      order.add_to_order(request,a) 
      url =urlresolvers.reverse('order_index',kwargs={'id':a.id}) 
      # redirect 
      return HttpResponseRedirect(url) 

urls.py

url(r'^item/(?P<id>\d+)/$',show_item, name="item_order") 

令我吃驚的,形式不會屈從於這種觀點,其實就不會不要做任何事情。這打動了我的理解,我認爲如果我已經明確地設置了表單頭部中的動作,它會按照我的意圖工作。

什麼做得不對?鏈接也讚賞。

編輯 Firebug的檢查由@danihp指出的那樣,我已經瞭解到,當瀏覽器呈現頁面渲染它,我想它的所有Django的模板邏輯之前關閉窗體。

<form method="post" action="orders/item/2"></form> 
<input class="btn btn-large btn-success" type="submit" name="submit" value="add to order"/> 

所以當我提交什麼都沒有發生,因爲輸入元素不是在窗體中。

解決

看看我的答案。

+0

安裝firebug並調試正在發生的事情。 – danihp

+0

你是什麼意思,「它什麼都不會做」?按下提交按鈕時會發生什麼?你應該發佈你的網址。 –

+0

名稱爲'item_order'的網址是否真的映射到show_item方法? –

回答

0

看着我,我發現了相同的problem and solution。它發生我的HTML標記寫得不好,提到的問題和解決方案幫助弄清楚。