Избранное разрешение Django

как настроить права доступа, чтобы получать избранное только того пользователя, который добавил, а избранное других пользователей не могло быть прочитано

models.py

class Task(models.Model):
    user_info = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, name='userInfo')
    title = models.CharField(max_length=100)
    text = models.TextField(max_length=10000)

class Favourite(models.Model):
    task_id = models.ForeignKey(Task, on_delete=models.CASCADE, blank=True, null=True, related_name='favourites',name='taskId')
    user_info = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, name='userInfo')

views.py

class FavouriteUserView(generics.ListAPIView):

    serializer_class = FavouriteReceivingSerializer
    pagination_class = MyCursorPagination
    permission_classes = (IsAuthor,)

    def get_queryset(self):
        return Favourite.objects.filter(
            userInfo_id=self.kwargs.get('pk')).select_related('userInfo').order_by('userInfo_id')

permissions.py

class IsAuthor(BasePermission):
    def has_permission(self, request, view):
        if request.method in SAFE_METHODS:
            return True
        return request.user and request.user.is_authenticated

    def has_object_permission(self, request, view, obj):
        return obj.userInfo == request.user
Вернуться на верх