は、ステップ1で前述した、ともhere at djangoprojectを説明するようchange_list_results.html
...
オーバーライドchangelist_view
をオーバーライドする上でいくつかの詳細です。 または上記の手順2のように適切なディレクトリに配置することによって自動上書きします。 (上記のステップ2のパスはモデル固有であることに注意してください.App固有のものは、TEMPLATE_DIRSタプルで定義されたディレクトリの下に/admin/<MyAppName>/change_list.html
となります。おそらく簡単に)
それとも()任意の検出可能テンプレートファイル名でhereを説明したように、単純にModelAdmin.change_list_template
を指定します。最低でも持っている、あなたのchange_list.html
テンプレートで
class MyModelAdmin(admin.ModelAdmin):
change_list_template = 'change_list.html' # definitely not 'admin/change_list.html'
# ...
(名前change_list.html
を保持している場合、extends
タグは再帰の原因となります他、/admin
フォルダに直接堆積しないようにしてください。、けれども)
{% extends "admin/change_list.html" %}
{% load i18n admin_static admin_list %}
{% load myapptags %}
{% block result_list %}
{% if action_form and actions_on_top and cl.full_result_count %}{% admin_actions %}{% endif %}
{% result_list cl %}
{% if action_form and actions_on_bottom and cl.full_result_count %}{% admin_actions %}{% endif %}
{% endblock %}
__init__.py
を含む/<MyAppName>/templatetags
パッケージ(ディレクトリを作成します。 )コピー
# MyAppName/templatetags/myapptags.py
from django import template
from django.contrib.admin.templatetags.admin_list import result_list
register = template.Library()
register.inclusion_tag('my_change_list_results.html')(result_list)
上記負荷タグに対応するファイルを有するとDjangoのchange_list_results.html
(例えばように編集上記のmy_change_list_results.html
)を使用して、追加した機能を使用します。
これらの手順には、テンプレートの余分なコンテキストは含まれていませんが、簡単に拡張できることに注意してください。 (これを行うための私の理由は、CSSのクラスと結果リストでソートされなかった大手<tbody>
を追加することでした。)
追加:
は、余分なコンテキストを含めるあなたのtemplatetagsモジュールを変更するには次のように続いて
# MyAppName/templatetags/myapptags.py
from django import template
from django.contrib.admin.templatetags.admin_list import result_list as admin_list_result_list
def result_list(cl):
mycl = {'myextracontext': 'something extra'}
mycl.update(foo_extra())
mycl.update(admin_list_result_list(cl))
return mycl
register = template.Library()
register.inclusion_tag('my_change_list_results.html')(result_list)
、myextracontext
または何foo_extra
戻り値として、例えば{{ myextracontext }}
(検索結果テンプレートに含めることができます)
admin.pyには、通常のメソッドをオーバーライドするのに役立ついくつかの機能があります... [こちらをチェックしてください](http://docs.djangoproject.com/en/dev/ref/contrib/admin/ #他の方法)...彼らはあなたを助けるかもしれません... – FallenAngel