2016-07-15 22 views
2

私は現在私のモデルの管理テンプレートをカスタマイズしており、django-importexportやdjango-modelcloneのようなサードパーティのものを継承したModelAdminの問題に遭遇しました。Django admin - カスタムchange_form.htmlとサードパーティのアプリケーションcustom change_form

これらのアプリのいずれもchange_list.htmlまたはchange_form.htmlのいずれかになります。それぞれはadmin/change_list.htmlまたはadmin/change_form.htmlのいずれかに拡張されます。

だから私のモデルの管理者は、次のようになります。

class MyModelAdmin(SuitObjectActionsMixin, ImportExportModelAdmin, ClonableModelAdmin): 

私は/templates/myapp/mymodel/にファイルchange_form.htmlを追加することで、私のModelAdminのをカスタマイズしてみました。他の管理者がサードパーティのアプリケーションを継承していない場合と同じように動作するはずです。

デバッグツールバーを使用すると、使用されたテンプレートは、標準change_form.htmlを拡張し、私が作成したテンプレートではないdjango-modelcloneのいずれかのテンプレートであるようです。

第三者のアプリケーションテンプレートは、標準のものを拡張するだけで、「ローカル」カスタムテンプレートよりも優先されるようです。

この問題を解決する明確な方法はありますか?

答えて

2

あなたはModelAdminのクラスに変更フォームテンプレートと変更リストテンプレートを指定することができます。

class MyModelAdmin(A, B, C): 
    change_form_template = 'path/to/my_change_form.html' 
    change_list_template = 'path/to/my_change_list.html' 

1は、似たような状況で私のために働きました。

+0

私の場合ではなく、テンプレートを完全に上書きしたいのであれば良いです。 たとえば、 'django-modelclone'は' change_form.html'にアクションボタンを追加するだけで、私のカスタムテンプレートにはこのボタンが残っています。 –

+0

管理者アクションを意味するならば、あなた自身のテンプレートを置くなら、あなたはそれを持っています。より複雑なものなら、modelcloneや他のバッテリーのhtmlテンプレートをコピーしてカスタマイズすることができます。私は例えばグラッペリでそれをしました。 – valignatev

+0

申し訳ありません返信を忘れました... サードパーティのアプリケーションのHTMLを直接テンプレートに追加して –

関連する問題