Одним из подходов является переопределение класса BasePermission для создания вашего пользовательского разрешения.Вы можете указать разрешение доступа, используя дополнительное поле в модели User.
class UserPermission(BasePermission):
def has_permission(self, request, view):
is_allowed_user = False
try:
permission = Permission.objects.get(user=request.user.id, user1=request.GET.get('user'))
if permission.is_read_enabled:
is_allowed_user = True
else
is_allowed_user = False
except Permission.DoesNotExist as e:
is_allowed_user = False
return is_allowed_user
Создание модели для указания разрешений
class Permission(models.Model):
user = models.ForeignKey(User,...)
user1 = models.ForeignKey(User,...)
is_read_enabled = models.BooleanField(defualt=False)
Добавьте это разрешение для просмотра при необходимости.