python - How to prevent super user deletion in Django admin? -
in django admin have 4 users , super user. have users staff status have limited access , cannot delete/view/edit users admin has authority on every other users , models. want superuser able access users data , edit/modify/delete them not want superuser able delete himself/herself. superuser can delete himself. there way disable superuser delete himself/herself in django?? grateful.
thanks
do not use has_delete_permission() override not being called on every object when perform delete action changelist.
use signals it. add models.py
from django.db.models.signals import pre_delete django.dispatch.dispatcher import receiver django.contrib.auth.models import user django.core.exceptions import permissiondenied @receiver(pre_delete, sender=user) def delete_user(sender, instance, **kwargs): if instance.is_superuser: raise permissiondenied
the drawback of method nobody able delete super user. have set users attribute "is_superuser" false before can delete it.
Comments
Post a Comment