2011-07-21 17 views
0

私は、ユーザーがオブジェクトを手動で追加/削除したくないというモデルを持っています。代わりに、一度クリックすると、いくつかのコードを実行し、自動的にデータベースを更新するいくつかのGetボタンを持っています。 自分の管理者アクションを追加して同様のことをすることができました。ただし、デフォルトで管理者アクションを追加すると、モデルに少なくとも1つのオブジェクトが必要で、そのオブジェクトを選択して何らかのアクションを実行する必要があります。 空のモデルで私のカスタマイズしたアクションを実行できるようにしたいのです(インデックスボタンの[追加]ボタンを置き換えることができれば完璧です)。そうする方法はありますか?ありがとう!replace add with django admin site

答えて

0

django管理者モデルのadd_viewメソッドをオーバーライドして、必要に応じてそのビューを持っていると思われるものを実行できます。 ModelAdminコードを覗いてみると、デフォルトで何が行われているか見ることができます

このプロジェクトを見ることもできます:あなたのビュー管理者/ myprojectのようなもの/ myappに/モデル/取得し、それはあなたが好きなものを行う必要があり...

0
  1. を作るあなたは「のModelNameを追加することができます」権限を除去することによって、新しいオブジェクトを追加することからユーザーを防ぐことができますそのユーザーからの彼らがスーパーユーザーであれば、実際にはそれをやめさせることはありません。

  2. 管理アクションは、モデルの特定のインスタンスで実行されるように設計されています。それがあなたのコードがやっていることではないなら、あなたはおそらくその特定のルートに行くべきではありません。モデルにoverride the admin templateを追加し、カスタムビューに新しいボタンやリンクを追加することができます。また、テンプレートから削除することで[追加]ボタンを完全に削除することもできますが、代わりに権限を使用することをおすすめします。