Skip to content

permission mixins

utils/permission_mixins.py

class HasAddPermissionMixin:
"""
Mixin class to control the add permission based on the existence of objects.
"""
def has_add_permission(self, request):
    model = self.model
    return not model.objects.exists()

Usage

admin.py

from django.contrib import admin
from utils.permission_mixins import HasAddPermissionMixin
from .models import Contact

@admin.register(Contact)
class ContactAdmin(HasAddPermissionMixin, admin.ModelAdmin):
    list_display = ('mail', )