有沒有辦法顯示在Django管理員中進行的每個最後操作?默認情況下,管理員只顯示當前用戶的最後一個操作,但我希望看到每個管理員的最後一個操作。由於我的項目中沒有此頁面的任何代碼,我該如何與此小部件交互?我應該重寫整個索引嗎?我可以在Django Admin索引中顯示每個人的最後一個動作嗎?
我希望得到的東西是這樣的:
而不只是第2項的,如果我(根據屏幕)連爲er****
。
有沒有辦法顯示在Django管理員中進行的每個最後操作?默認情況下,管理員只顯示當前用戶的最後一個操作,但我希望看到每個管理員的最後一個操作。由於我的項目中沒有此頁面的任何代碼,我該如何與此小部件交互?我應該重寫整個索引嗎?我可以在Django Admin索引中顯示每個人的最後一個動作嗎?
我希望得到的東西是這樣的:
而不只是第2項的,如果我(根據屏幕)連爲er****
。
是的。通過覆蓋模板,Django管理員中的所有內容都可以定製爲。所有你需要的是覆蓋文件templates/admin/index.html
of your current Django version和改變這一行:
{% get_admin_log 10 as admin_log for_user user %}
並取出for_user user
部分。它將顯示最近10次最近的操作,不需要用戶過濾。爲了完美,您還需要更改塊的名稱並添加操作作者。側邊欄塊應該是這樣的:
{% block sidebar %}
<div id="content-related">
<div class="module" id="recent-actions-module">
<h2>{% trans 'Recent Actions' %}</h2>
<h3>{% trans 'Last Actions' %}</h3> {# Title modified #}
{% load log %}
{% get_admin_log 10 as admin_log %} {# No more filtering #}
{% if not admin_log %}
<p>{% trans 'None available' %}</p>
{% else %}
<ul class="actionlist">
{% for entry in admin_log %}
<li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">
{% if entry.is_deletion or not entry.get_admin_url %}
{{ entry.object_repr }}
{% else %}
<a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
{% endif %}
<br/>
{% if entry.content_type %}
{# Add the author here, at the end #}
<span class="mini quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}, by {{ entry.user }}</span>
{% else %}
<span class="mini quiet">{% trans 'Unknown content' %}</span>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>
{% endblock %}
這是很容易凌駕於Django的1.9:
在你的主人urls.py
在管理界面加載(與admin.autodiscover()
),覆蓋管理員的名稱指數模板文件:
from django.contrib import admin
admin.site.index_template = 'admin/my_custom_index.html'
admin.autodiscover()
然後創建任何應用程序的模板目錄(如\my_app\templates\admin\my_custom_index.html
)內的文件admin\my_custom_index.html
。它可以延長現有的模板,所以並不需要成爲一個漫長的:
{% extends "admin/index.html" %}
{% load i18n static %}
{% block sidebar %}
<div id="content-related">
<div class="module" id="recent-actions-module">
<h2>{% trans 'Recent actions' %}</h2>
<h3>{% trans 'All users' %}</h3>
{% load log %}
{% get_admin_log 30 as admin_log %}
{% if not admin_log %}
<p>{% trans 'None available' %}</p>
{% else %}
<ul class="actionlist">
{% for entry in admin_log %}
<li class="{% if entry.is_addition %}addlink{% endif %}{% if entry.is_change %}changelink{% endif %}{% if entry.is_deletion %}deletelink{% endif %}">
{% if entry.is_deletion or not entry.get_admin_url %}
{{ entry.object_repr }}
{% else %}
<a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
{% endif %}
<br/>
{% if entry.content_type %}
<span class="mini quiet">{% filter capfirst %}{{ entry.content_type }}{% endfilter %}, by {{ entry.user }}</span>
{% else %}
<span class="mini quiet">{% trans 'Unknown content' %}</span>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>
{% endblock %}
塊多年來Django的變化了,這裏的版本是比Maximime的答案更新。