6

我想根据用户类型从 django 管理按钮启用/禁用历史记录。

在此处输入图像描述

我的最终目标是能够理解如何显示隐藏此按钮。

4

2 回答 2

5

不幸的是,Django 没有提供一种简单的方法来切换历史按钮,例如,它为“添加”按钮所做的那样。最简单的方法是覆盖change_form.html并从中删除下一行block object-tools-items

<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)
于 2017-11-26T12:32:41.640 回答
0

一个干净的解决方案是覆盖change_form_object_tools.html template,它需要放在templates/admin/您的项目中。

    {% load i18n admin_urls %}
    {% block object-tools-items %}

    {% block comment %}
     <li>
        {% url opts|admin_urlname:'history' original.pk|admin_urlquote as   history_url %}
        <a href="{% add_preserved_filters history_url %}" class="historylink">
 {% translate "History" %}</a>
    </li>
    {% endcomment %}

    {% if has_absolute_url %}<li><a href="{{ absolute_url }}" class="viewsitelink">{% translate "View on site" %}</a></li>{% endif %}
    {% endblock %}
于 2020-09-03T20:42:32.430 回答