我可以显示Django管理索引中每个人的最后操作吗?

我可以显示Django管理索引中每个人的最后操作吗?,django,django-admin,Django,Django Admin,有没有一种方法可以显示Django管理员中执行的每一个操作?默认情况下,管理员只显示当前用户的最后操作,但我希望看到每个管理员的最后操作。由于我的项目中没有此页面的任何代码,我如何与此小部件交互?我应该覆盖整个索引吗 我想得到这样的东西: 如果我以er****(根据屏幕)的方式连接,而不仅仅是前两个条目。是的。Django admin中的所有内容都可以通过覆盖模板进行自定义。您只需覆盖该文件并更改此行: {% get_admin_log 10 as admin_log for_user use

有没有一种方法可以显示Django管理员中执行的每一个操作?默认情况下,管理员只显示当前用户的最后操作,但我希望看到每个管理员的最后操作。由于我的项目中没有此页面的任何代码,我如何与此小部件交互?我应该覆盖整个索引吗

我想得到这样的东西:


如果我以
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的答案更新