Django不接受我的表格

时间:2013-08-27 22:52:02

标签: django

我有一个模板,一个由modelForm生成的表单:

    <body>
    <form action="/traitermodificationentrant.html/" method="POST" class="form-horizontal" >

    <legend> Modification du courrier numero {{ cemodifier.id}} </legend>
    <table>
        {{form}}

    </table>
    <input type="hidden" value="{{ cemodifier.id}}" name="id">
    <input type="submit" value="modifier"  />

</form>
    </body>
    </html>

当我按下按钮提交时,视图会处理该处理

def traiter_modif_entrant(request):
if request.method == 'POST':
    form = Form_modif_courrier_Entrant(request.POST)
    if form.is_valid():
        ident = form.cleaned_data['id']
        c = Courrier_Entrant.objects.get(id=ident)
        c.reference   = form.cleaned_data['reference']
        c.objet = form.cleaned_data['objet']
        c.categorie =form.clneaned_data['categorie']
        c.expediteur = form.cleaned_data['expediteur']
        c.save()
        HttpResponseRedirect('/')
else :
    form =Form_modif_courrier_Entrant()
return render_to_response('index.html', RequestContext(request,{}) )

我的问题是表格始终无效

提前感谢!

2 个答案:

答案 0 :(得分:0)

也许试试这个:

ident = int(form.cleaned_data['id'])

或者如果不起作用,那么请尝试“pk”:

c = Courrier_Entrant.objects.get(pk=ident)

答案 1 :(得分:0)

您实际上没有将表单传递给模板,因此它永远不会显示,错误也不会显示。视图的最后一行应该是:

return render_to_response('index.html', RequestContext(request,{'form': form}))

或者更好的是,使用render快捷方式:

return render(request, 'index.html', {'form': form})