Django rest framework 在管理中显示或隐藏带有复选框的 API 个对象

Django rest framework show or hide API objects with checkbox in admin

我需要了解如何在 API 中显示或隐藏对象由 django rest 框架序列化。
我在我的管理模型中设置了一个复选框来设置活动或非活动对象(真或假)

class Video(models.Model):
    ...
    status = models.BooleanField('Activate video', default=False, help_text='If is checked show the video in the API')
    ...

在我的 urls.py 我设置

from video.models import Video

class VideoAPI(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Video
        fields = [...]

class API_Video(viewsets.ModelViewSet):
    queryset = Video.objects.all()
    serializer_class = VideoAPI

现在如何在我的模型中使用复选框显示或隐藏 API Json 中的对象?

DRF 使用您提供的查询集结合您在序列化程序 Meta class.

中提供的字段来填充 JSON 响应

因此,为了过滤掉具有 status=False 的对象,您可以简单地过滤提供的查询集:

class API_Video(viewsets.ModelViewSet):
    queryset = Video.objects.filter(status=True)
    serializer_class = VideoAPI

您还可以调用 get_queryset 方法并覆盖它以执行更高级和复杂的过滤:DRF - Doc - get_queryset(self)