У меня есть Django Model, которую я хочу сделать только доступной для чтения. Добавление и редактирование запрещено.
Я пометил все поля readonly и переопределил has_add_permission в ModelAdmin как:
class SomeModelAdmin(admin.ModelAdmin):
def has_add_permission(self, request):
return False
Есть ли аналогичный has_edit_permission
? Которое можно отключить, чтобы убрать кнопки "Сохранить" и "Сохранить и продолжить"? И заменить простой кнопкой "Закрыть и вернуться".
Django Documentation Упоминается только о полях только для чтения, но не о переопределении прав на редактирование.
Это было возможно некоторое время. Имена has_add_permission
, has_change_permission
и has_delete_permission
. Посмотрите django администраторская документация для ссылки. Вот также пример:
@admin.register(Object)
class Admin(admin.ModelAdmin):
def has_add_permission(self, request):
return False
def has_change_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False
Самый легкий метод отключил бы соответствующие полномочия в классе ModelAdmin. Например, у меня есть модель Cart, которую я хочу, чтобы администратор только просмотрел (список и детали) и все, что я сделал должен был добавить, что следующие функции к классу CartAdmin для отключения удаляют, изменяются и добавляют
class CartAdmin(admin.ModelAdmin):
list_display = ['listing']
def has_add_permission(self, request, obj=None):
return False
def has_change_permission(self, request, obj=None):
return False
def has_delete_permission(self, request, obj=None):
return False
, Эти три метода has_add_permission, has_change_permission и has_delete_permission являются теми, которые отключают, добавляет кнопка, добавляет форму, редактирует форму и удаляет кнопки в администраторе
, Вот демонстрационный вывод, когда просмотр записи детализирует в администраторе, который имеет вышеупомянутые полномочия, отключенные
, Поскольку Вы видите схему выше, у Вас только есть близкая кнопка, и детали не отображены в форме