即使表单操作参数明确设置,表单也不提交

时间:2014-03-04 17:07:44

标签: django forms twitter-bootstrap-3

我通常不会在django表单提交方面遇到很多麻烦,但我似乎无法弄清楚我的代码无法正常工作。在stackoverflow上做了一些阅读,但没有运气。

在我的模板中,我定义了一个在twitter bootstrap模式中呈现的表单,

<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")

令我惊讶的是,表格不会提交给这个观点,事实上它根本不会做任何事情。这打败了我的理解,我想如果我已经在表单标题中明确设置了操作,它将按照我的意图工作。

什么不对?链接也很受欢迎。

修改 正如@danihp所指出的那样,使用firebug进行检查,我了解到当浏览器呈现页面时,它会在呈现我想要的所有django模板逻辑之前关闭表单。

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

所以当我提交时没有任何反应,因为输入元素不在表单中。

解决

看看我的答案。

1 个答案:

答案 0 :(得分:0)

看着我发现了同样的problem and solution。它发生了我的html标记编写得很糟糕,提到的问题和解决方案帮助解决了问题。