如何在Django RFW中将不同的序列化程序组装成Json响应?

2024-10-02 22:33:37 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的序列化程序.py哦

class MalbSerializer(serializers.ModelSerializer):
    class Meta:
        model = malb
        fields = ('zoning', 'zoningdesc', )

class MasrSerializer(serializers.ModelSerializer):
    class Meta:
        model = masr
        fields = ('solddate', 'soldprice',  )

class MataSerializer(serializers.ModelSerializer):
    class Meta:
        model = mata
        fields = ('assessyear', 'landvalue', )

class TotalSerializer(serializers.ModelSerializer):
    LandBuilding = serializers.SerializerMethodField()
    SalesRecord = serializers.SerializerMethodField()
    TaxAssessment = serializers.SerializerMethodField()

    def get_LandBuilding(self, number):

        queryset_lb = malb.objects.filter(maid=number)
        serializer = MalbSerializer(queryset_lb, many=True)
        return serializer.data

    def get_SalesRecord(self, number):

        queryset_sr = masr.objects.filter(maid=number)
        serializer = MasrSerializer(queryset_sr, many=True)
        return serializer.data


    def get_TaxAssessment(self, number):

        queryset_ta = mata.objects.filter(maid=number)
        serializer = MataSerializer(queryset_ta, many=True)
        return serializer.data

    class Meta:

        fields = ('LandBuilding', 'SalesRecord', 'TaxAssessment', )

我想在TotalSerializer中将这三个序列化程序组装为一个序列化程序,但它有一个错误:

Class TotalSerializer missing "Meta.model" attribute

我不知道在这里添加哪些模型,因为我已经在MalbSerializer、MasrSerializer、MataSerializer中添加了模型。你知道吗

那么如何在TotalSerializer中显示MalbSerializer、MasrSerializer和MataSerializer呢?你知道吗


Tags: 程序numberfieldsmodel序列化metaclassqueryset