3

Django サイト (ModelForm で作成) にフォームがあり、ユーザーはデータを送信して新しいオブジェクトを作成したり、既存のオブジェクトを変更したりできます。ただし、これらのデータは、データベースにコミットする前にスタッフが確認する必要があり、後でまとめて確認する場合もあります。

.save(commit=False)フォーム処理ビューで使用して、データベースにまだ保存されていないオブジェクトを返すことができることはわかっています。しかし、後でレビューするために複数のユーザー送信からこれらすべてのオブジェクトを収集する方法はありますか? 理想的には、「コミット」または「拒否」ボタンを備えた送信の要約リストを含む管理ページが必要です。

4

1 に答える 1

2

これをすぐに実行できる方法はない (少なくとも Django に組み込まれていない) ため、自分でロジックを作成する必要がありますが、これは非常に簡単なはずです。考慮すべきいくつかのアプローチ:

  1. フォームを保存する 2 番目のモデル/テーブルを作成し、承認されたレコードを最初のテーブルにコピーするレビュー機能用のビューを作成します。

  2. 2 番目のモデル/テーブルを持つことを避け、モデル/テーブルにapproved = BoolField(default=False)フィールドを追加します。デフォルトで、コードの残りの部分が承認されたレコードのみを表示するようにフィルタリングobjectsするカスタム マネージャーに設定します。default=True承認されていないレコードのフィルタリングなど、反対のことを行う 2 番目のマネージャーを用意します。この 2 番目のマネージャーを使用して、承認されたすべてのものapprovedに切り替わるレビュー機能のビューを作成します。True

  3. 上記の 2 番目の方法で、Django の管理サイトを使用してレビューを行う場合は、未承認のレコードをフィルタリングする 2 番目のマネージャーをデフォルトで使用するモデルのプロキシを作成します。その後、管理者のインライン表示および編集機能を使用して、レコードを一目で確認し、必要に応じて承認をクリックできます。

于 2012-08-24T17:22:43.603 に答える