{% load i18n admin_urls jazzmin %}
{% get_jazzmin_ui_tweaks as jazzmin_ui %}
{% block object-tools-items %}
{% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
# Validate if the user is super user, if true, the history button is displayed, else, remove the history button.
{% if request.user.is_superuser %}
<a class="btn btn-block {{ jazzmin_ui.button_classes.secondary }} btn-sm" href="{% add_preserved_filters history_url %}">{% trans 'History' %}</a>
{% endif%}
{% if has_absolute_url %}
<a href="{{ absolute_url }}" class="btn btn-block {{ jazzmin_ui.button_classes.secondary }} btn-sm">{% trans "View on site" %}</a>
{% endif %}
{% endblock %}
<li>
{% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
<a href="{% add_preserved_filters history_url %}" class="historylink">{% trans "History" %}</a>
</li>
请记住,您必须为每个管理模型指定change_form。示例:
class TestAdmin(admin.ModelAdmin):
# path to the app_name/templates/admin/app_name/change_form.html
change_form_template = 'admin/app_name/change_form.html'
# Register your models here.
admin.site.register(Test, TestAdmin)
3条答案
按热度按时间2wnc66cl1#
我知道这是旧的。我也遇到了这个问题,并根据@elsadek的回答和@daigorocub的评论,这是我如何设法显示/隐藏历史按钮/链接。
创建管理模板以覆盖
change_form_object_tools.html
的默认管理模板,目录将为app/templates/admin/
。这是我的
change_form_object_tools.html
的样子.它是从django的默认change_form_object_tools.html
不同,因为我使用django-jazzmin管理模板,但过程是一样的.作为参考,这是django的默认
change_form_object_tools.html
,可以在..\python3.11\site-packages\django\contrib\admin\templates\admin\
中找到change_form_object_tools.html
dw1jzc5e2#
不幸的是,Django并没有提供一个简单的方法来切换历史按钮,就像'添加'按钮一样。最简单的方法是覆盖一个change_form.html并删除
block object-tools-items
中的下一行:请记住,您必须为每个管理模型指定
change_form
。示例:x759pob23#
一个干净的解决方案是覆盖
change_form_object_tools.html
template,它需要放置在项目的templates/admin/
中。