【问题标题】:Return something that is not a part of any model in Generics.listAPIView返回不属于 Generics.listAPIView 中任何模型的内容
【发布时间】:2021-03-30 15:51:12
【问题描述】:

在将Generics.ListAPIView 类返回的数据发送到前端之前,您如何对其进行格式化?我想将元数据添加到返回值,但我无法添加任何不属于模型的元数据。例如:

class someList(generics.ListAPIView):
    serializer_class = someSerializer

    def get_queryset(self):
        return someQueryset()

class someListSerializer(SurveySerializer):
    class Meta:
        model = someListModel
        fields = ['modelField']

class someListModel(Base):
    modelField=models.TextField(default="", blank=True)

这将产生 [{modelField:information},{modelField:information},{modelField:information}]

如果我想要怎么办 [ {modelField:information, informationCalculatedFromQueryset:butNotPartOfModel}, {modelField:information, informationCalculatedFromQueryset:butNotPartOfModel},{modelField:information, informationCalculatedFromQueryset:butNotPartOfModel} ]

informationCalculatedFromQueryset 不是 someListModel 的一部分,所以我不能只将它添加到字段中。如何手动将此信息附加到前端?这可能吗?

【问题讨论】:

    标签: django django-models django-rest-framework django-views django-serializer


    【解决方案1】:

    为此,您可以使用SerializerMethodField,您可以这样做:

        class SurveySerializer(serializers.Serializer):
            otherField = serializers.SerailzerMethodField()
    
            get_otherField(self, obj):
                 return "I am other field"
        
            class Meta:
                  model = Survey
                  fields = "__all__"
    
    

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 2019-04-06
      • 2012-02-15
      • 2020-09-07
      相关资源
      最近更新 更多