Разрешение на пользовательские кнопки в change_form.html администратора Django - PullRequest
0 голосов
/ 10 мая 2019

Я добавил несколько пользовательских кнопок в файл change_form.html администратора Django.Однако я хочу скрыть эти кнопки для конкретного пользователя.

<!-- change_form.html -->
{% extends "admin/change_form.html" %} 

{% block submit_buttons_bottom %}
    {{ block.super }}   
    <div class="my-submit-row">
        <input type="submit" value="Save as draft" name="_drafted" class="btn btn-lg btn-success">
    </div>
{% endblock %}

Как показано в приведенном ниже коде, я могу скрыть кнопки «сохранить» и «сохранить_и_континуум», которые являются встроенными кнопками, сделать их только для суперпользователя.

У кого-нибудь есть опыт или предложения по этому поводу?

# admin.py 
class MyAdmin(admin.ModelAdmin, ExportCsvMixin):
    ...
    def change_view(self, request, object_id, extra_context=None):
        if not request.user.is_superuser:
            extra_context = extra_context or {}
            extra_context['show_save_and_continue'] = False
            extra_context['show_save'] = False

        return super(MyAdmin, self).change_view(request, object_id, extra_context=extra_context)
...