0

こんにちは、テンプレートに 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,{}) )

私の問題は、フォームが常に有効ではないことです

前もって感謝します!

4

2 に答える 2

0

多分これを試してください:

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

または、それが機能しない場合は、代わりに「pk」を試してください。

c = Courrier_Entrant.objects.get(pk=ident)
于 2013-08-28T00:00:18.123 に答える
0

実際にはフォームをテンプレートに渡していないため、フォームは表示されず、エラーも表示されません。ビューの最後の行は次のようになります。

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

または、renderショートカットを使用することをお勧めします。

return render(request, 'index.html', {'form': form})
于 2013-08-28T07:58:25.353 に答える