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', )