26 августа 2013 г.

django admin запрет редактирования модели

Запрещение в админке django редактирования какой-либо сущности. В моём случае это оповещения об оплатах платёжной системы. В ModelAdmin есть методы has_add_permission, has_change_permission, has_delete_permission с очевидным предназначением. Правда, если все они вернут в каком-то случае False, то модель вообще не отобразится в списке сущностей админки и по прямой ссылке тоже не будет работать. Так что все поля вместо has_change_permission надо сделать readonly.
class SuccessNotificationAdmin(admin.ModelAdmin):
    ...
    readonly_fields = ('order', 'sum', )

    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

admin.site.register(SuccessNotification, SuccessNotificationAdmin)

Комментариев нет:

Отправить комментарий