Tengo un modelo de autor con un campo:
is_active = models.BooleanField(default=False)Deseo restringir el acceso al autor cuyo is_active=False.
Puedo usar algo como esto en cada API:
get_object_or_404(uuid=id, is_active=True)Pero deseo restringir globalmente el acceso al UUID cuyo is_active=false, en lugar de escribir esta declaración en cada API.
¿Hay alguna manera de que pueda hacer eso?
Puede crear una clase de permiso personalizada y usarla como clase de permiso, donde verificará si el usuario está autenticado y también es un miembro activo.
Algo como esto :
class UserIsActive(permissions.BasePermission): def has_permission(self, request, view): if request.user.is_authenticated and request.user.is_active: return True return False def has_object_permission(self, request, view, obj): if request.user.is_active: return True return False