2012-09-24 9 views
7

私はブログポストを持つ管理インターフェースを持っています。インラインモデルはポストの以前のバージョンです。私は、以前のバージョン(元に戻すアクション、カスタムモデル方式)のそれぞれに対してアクションを追加したいと思いますadminインターフェイスのDjangoインラインオブジェクトにカスタムアクションを追加します。

は、どのように私はそれをやって行くべきですか? そのModelActionアクションキーワードにちょっと似ていますが、私はそれがモデルビューの内側になりたいではなく、リストビュー ともその各インラインモデルのためではなく、親モデルのための

は、いくつかの助けを大好きです。

それをより明確にするために

私previous_versionクラスは、元に戻すという名前の関数を持っています。私が望むのは、前の各バージョンの管理パネルのブログ投稿のビューにリンクやボタンなどがあることだけです。それを押すとprevious_version.revertが呼び出されます。

答えて

2

私はマニュアルに記載され、これは管理者の操作であることを確認するために正しいことを推測する -

https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/

+3

それは私が探しているものではありません。 djangoの管理アクションは、オブジェクトのリスト(私の場合はブログ投稿のリストになる)と対話するためのものです。私は単一のブログの投稿のビューにボタンを持っていたい。私は実際にテンプレートをオーバーライドすることによってそれを行うために小さなハックをしましたが、私はより良い方法を探していました。 – Omri

1

あなたが行動revertでブログModelAdminのを拡張することができます。

ボタンを追加するためのインラインモデルテンプレートをオーバーライドすると、すでに行ったことのように、それを行う良い方法です。

作成したビューをadmin_viewにラップし、投稿要求のみ許可してください。