Max*_*ant 4 django django-admin
有没有办法显示Django管理员的最后一个动作?默认情况下,admin仅显示当前用户的最后操作,但我希望查看每个管理员的最后操作.由于我的项目中没有此页面的任何代码,我该如何与此小部件进行交互?我应该覆盖整个索引吗?
我想得到这样的东西:

如果我连接为er****(根据屏幕),而不是仅仅是第一个条目.
是的.Django管理员中的所有内容都可以通过覆盖模板进行自定义.您只需要覆盖templates/admin/index.html当前Django版本的文件并更改此行:
{% get_admin_log 10 as admin_log for_user user %}
Run Code Online (Sandbox Code Playgroud)
并删除该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 %}
Run Code Online (Sandbox Code Playgroud)
这在 django 1.9 上很容易覆盖:
urls.py在加载管理界面的master 中(使用admin.autodiscover()),覆盖管理索引模板文件的名称:
from django.contrib import admin
admin.site.index_template = 'admin/my_custom_index.html'
admin.autodiscover()
Run Code Online (Sandbox Code Playgroud)
admin\my_custom_index.html然后在任何应用程序的模板目录(例如)中创建该文件\my_app\templates\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 %}
Run Code Online (Sandbox Code Playgroud)
多年来,django 中的块有所不同,这里的版本比 Maximime 的答案中的版本更新。
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |