You need to enable JavaScript to run this app. 如何在Django Generic Views开发的API中隐藏status process字段仅展示topic
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django Generic Views开发的API中隐藏status process字段仅展示topic

实现方式

不需要改动Generic View的现有逻辑,只要调整TopicSerializer的字段配置就能实现需求。DRF的ModelSerializer会严格按照序列化器Meta类里声明的字段范围做输出,不在声明列表里的模型字段不会被返回给前端。

具体代码修改

把原来序列化器里的全量字段配置换掉,显式列出来要展示的topic字段:

class TopicSerializer(serializers.ModelSerializer):
    class Meta:
        model = Topics
        # 只保留需要展示的topic字段,其余包括status、process在内的字段都会被自动过滤
        fields = ('topic',)

原有的ListCreateTopic视图不需要任何改动,它会直接调用绑定的序列化器完成字段过滤:

class ListCreateTopic(generics.ListCreateAPIView):
    queryset = models.Topics.objects.order_by('-time_stamp')[:5]
    serializer_class = serializers.TopicSerializer

注意事项

  • 后续如果要新增返回字段,直接在fields的元组里加上对应字段名就行
  • 也可以用exclude = ('status', 'process')的写法直接排除不需要的字段,但这种写法会在模型新增字段时自动把新字段纳入返回范围,容易出现接口字段意外暴露的问题,逐一枚举需要保留的字段是更稳妥的做法

内容的提问来源于stack exchange,提问作者Jose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 07:06:03