۱ Mohsen Azizi
توسعه HasPostPermission برای LikeCreateAPIView
جامعه پایتون (وب) ایجاد شده در ۲۴ اسفند ۱۴۰۰

سلام

استاد توی این جلسه کلاس HasPostPermission رو برای LikeCreateAPIView توسعه دادن

طبق توضیحات استاد متد has_object_permission زمانی استفاده میشه که بخواهیم دسترسی به یک obj رو کنترل کنیم

و همچنین این permission‌ها داخل متد get_object بررسی میشن

def get_object(self):
    ...
    self.check_object_permissions(self.request, obj)
    return obj

سوالی که برا من پیش میاد اینه که ما وقتی داریم LikeCreateAPIView رو توسعه میدیم از generics.CreateAPIView استفاده میکنیم

و generics.CreateAPIView اصلا متد get_object رو فراخوانی نمیکنه که بخواد permission‌های ما رو چک کنه.

ایا استاد به اشتباه این متد رو برا این جا توسعه داده یا من دچار اشتباه شدم؟

ممنون میشم این سوال رو یا استاد در میون بذارید

class LikeCreateAPI(CreateAPIView):
    queryset = Like.objects.all()
    serializer_class = PostLikeSerializer
    permission_classes = [IsAuthenticated, HasPostPermission]
    def perform_create(self, serializer):
        serializer.save(user=self.request.user)
class HasPostPermission(BasePermission):
    def has_object_permission(self, request, view, obj):
        relation_exists = Relation.objects.filter(from_user=request.user, to_user=obj.post.user).exists()
        return bool(relation_exists or request.user == obj.post.user)

سلام محسن جان امیدوارم عالی باشی

سوالت رو با استاد share کردم

پوریا شفیعی ۲۶ اسفند ۱۴۰۰، ۱۴:۴۷