基于drf类的视图api数据过滤问题[编辑:修复了一个问题]

0tdrvxhp  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(245)

我正在尝试将更新和销毁视图添加到此视图。但问题是我知道如何使用基于函数的视图来实现这一点,我在这里使用的是基于类的视图。 views.pyclass UpdatePostView(generics.RetrieveUpdateDestroyAPIView): permission_classes = [permissions.IsAuthenticated] serializer_class = PostSerializer queryset = Post.objects.all() lookup_field = 'id'serializers.py ```
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = 'all'

问题1:任何用户都可以删除或更新其他用户的任何帖子
问题2:在更新方法中有一个更新用户的选项

{
"id": 2,
"title": "Post 1",
"image": null,
"user": 3
}

我试图尽可能地将这些视图保持为基于类的视图,以减少代码行
编辑:问题1已修复
lrl1mhuk

lrl1mhuk1#

我们可以覆盖 get_queryset 而不是 queryset = Post.objects.all() .
在updatepostview类中

def get_queryset(self):
    return Post.objects.filter(user=self.request.user)

还是继续使用 queryset= ```
queryset = Post.objects.all()

def get_queryset(self):
return super().get_queryset().filter(user=self.request.user)

所以,只能访问他们的帖子。

相关问题