我可以显示Django管理索引中每个人的最后操作吗?
有没有一种方法可以显示Django管理员中执行的每一个操作?默认情况下,管理员只显示当前用户的最后操作,但我希望看到每个管理员的最后操作。由于我的项目中没有此页面的任何代码,我如何与此小部件交互?我应该覆盖整个索引吗 我想得到这样的东西:我可以显示Django管理索引中每个人的最后操作吗?,django,django-admin,Django,Django Admin,有没有一种方法可以显示Django管理员中执行的每一个操作?默认情况下,管理员只显示当前用户的最后操作,但我希望看到每个管理员的最后操作。由于我的项目中没有此页面的任何代码,我如何与此小部件交互?我应该覆盖整个索引吗 我想得到这样的东西: 如果我以er****(根据屏幕)的方式连接,而不仅仅是前两个条目。是的。Django admin中的所有内容都可以通过覆盖模板进行自定义。您只需覆盖该文件并更改此行: {% get_admin_log 10 as admin_log for_user use
如果我以
er****
(根据屏幕)的方式连接,而不仅仅是前两个条目。是的。Django admin中的所有内容都可以通过覆盖模板进行自定义。您只需覆盖该文件并更改此行:
{% get_admin_log 10 as admin_log 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 %}
{%block sidebar%}
{%trans'最近的操作“%”
{%trans'最后的操作“%}{{#标题已修改#}
{%load log%}
{%get_admin_log 10作为admin_log%}{{#不再过滤#}
{%如果不是管理日志%}
{%trans'无可用'%}
{%else%}
{管理日志%中的条目为%1}
-
{%if entry.is_deletion or not entry.get_admin_url%}
{{entry.object_repr}
{%else%}
{%endif%}
{%if entry.content_type%}
{#在此处添加作者,在末尾#}
{%filter capfirst%}{%trans entry.content_type.name%}{%endfilter%},由{entry.user}
{%else%}
{%trans'未知内容“%”
{%endif%}
{%endfor%}
{%endif%}
{%endblock%}
这在django 1.9上很容易覆盖:
在加载管理界面的主控url.py
(使用admin.autodiscover()
)中,覆盖管理索引模板文件的名称:
from django.contrib import admin
admin.site.index_template = 'admin/my_custom_index.html'
admin.autodiscover()
然后在任何应用程序的模板目录中创建文件admin\my\u custom\u index.html
(例如\my\u app\templates\admin\my\u custom\u 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 %}
{%extends“admin/index.html”%}
{%load i18n static%}
{%块边栏%}
{%trans'最近的操作“%”
{%trans'所有用户“%”
{%load log%}
{%get_admin_log 30作为admin_log%}
{%如果不是管理日志%}
{%trans'无可用'%}
{%else%}
{管理日志%中的条目为%1}
-
{%if entry.is_deletion or not entry.get_admin_url%}
{{entry.object_repr}
{%else%}
{%endif%}
{%if entry.content_type%}
{%filter capfirst%}{{entry.content_type}{%endfilter%},由{entry.user}
{%else%}
{%trans'未知内容“%”
{%endif%}
{%endfor%}
{%endif%}
{%endblock%}
多年来,django的区块有所不同,这里的版本比Maxime的答案更新