【问题标题】:Django rest framework show or hide API objects with checkbox in adminDjango rest框架在管理员中使用复选框显示或隐藏API对象
【发布时间】:2020-03-17 16:24:45
【问题描述】:

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

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 中的对象?

【问题讨论】:

    标签: python django rest frameworks


    【解决方案1】:

    DRF 使用您提供的查询集来填充 JSON 响应,并结合您在序列化程序的 Meta 类中提供的字段。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 2021-04-10
      • 1970-01-01
      相关资源
      最近更新 更多