2012-02-04 8 views
56

Webページを使用してdjangoでデータベースから削除するオブジェクトをいくつか選択する必要があります。そこから選択するカテゴリはありませんので、私はそれらのすべてから削除することはできません。私は私自身の削除フォームを実装し、djangoで処理する必要がありますか、またはdjangoはすでにこれを行う方法がありますか?管理インターフェースで実装されています。djangoで複数のオブジェクトを削除する

答えて

101

あなたが望む任意のQuerySetを削除することができます。例えば、いくつかのPostモデル

Post.objects.all().delete() 

を持つすべてのブログ記事を削除すると、あなたは、しかし、狭くする方法を考え出す必要があります将来の発行日

Post.objects.filter(pub_date__gt=datetime.now()).delete() 

で任意の投稿を削除しますQuerySetを停止します。ビューで特定のオブジェクトを削除したい場合は、delete generic viewを参照してください。

編集:

ご迷惑をおかけして申し訳ありません。私は答えがどこかの間にあると思う。自分で実装するには、ModelFormgeneric viewsを組み合わせてください。それ以外の場合は、同様の機能を提供するサードパーティのアプリケーションを調べます。 related questionでは、推奨はdjango-filterでした。

+1

あなたはその質問を誤解していません。私はすべてを削除できることを理解しています。しかし、私は、Webページ上のフォームで削除するオブジェクトを選択する必要があります。そして、フォームから返されたデータを私のviews.pyで処理します。次に、フォームの削除で返されたwhatsをループ処理としてループします。しかし、私はdjangoでこれを実装するためのベストプラクティスを知りたがっていました。 – Dean

+0

ああ、私の間違い!私は、サードパーティ製のアプリを使うか、 'ModelForm'を使って一般的なビューを使うかのどちらかです。 –

+5

@Deanについては、その削除ビューを見てください。または、あなたは自分のビューを書くことができます...私は最終的に、あなたはおそらく、あなたのモデルのPKをリストし、deleteを呼び出すことを意味しています... 'MyModel.objects.filter(id__in = request.POST.getlist( 'delete_list') ).delete() 'と私はあなたがPKを推測してあなたのDB内のすべてのオブジェクトを削除することができないことを確認する何かをしたいと確信しています。 –

関連する問題