0

私は単純な編集フォームを持っています。私の考えは、フォームに削除ボタンを追加し、これをビューで使用することでした。

if request.method == 'POST':
    form = myform(request.POST,instance=myobject)
    if request.POST.get('delete'):
        form.delete()
    else:
        if form.is_valid():
            form.save()

これはうまくいきません。この方法で削除できますか?エラーがありますか?それとも、最初にクエリを実行してからデータを削除する必要がありますMydata.objects.get(id=id).delete()か?

4

3 に答える 3

1

その方法で削除することはできません。インスタンスをクエリして削除することにより、インスタンスを取得する必要があります。

また、フォームの作成方法form = myform(request.POST,instance=formdata)が適切ではありません。instanceに投稿されたデータではなく、オブジェクトである必要がありますrequest.POST

于 2012-10-14T09:03:51.353 に答える
1

実際、できます。
myobject をインスタンスとして渡しているため、form.instance.delete()を実行するだけで可能です。

編集: myobject.delete() も実行できるので、考え直してみると、それは無意味です。

于 2013-03-11T03:00:26.413 に答える
0

delete()いいえ、(どのように見えるか)をModelForm呼び出すことはできませんmyform

インスタンスを削除するには、2番目の方法でモデルマネージャーを呼び出す必要があります Mydata.objects.get(id=id).delete()

于 2012-10-14T08:58:25.940 に答える