如何在序列化程序中使用自定义变量?

2024-10-01 02:28:23 发布

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

我想创建一个序列化程序,它使用我模型中的变量,并计算在表中找到多少具有相同id的数据。在

我已经创建了这个,但它不起作用:

class WebsiteSerializer(serializers.Serializer):
    item_nr = serializers.IntegerField()

    class Meta:
        model = URL
        fields = (
            "id",
            "item",
            "status",
            "item_nr "
        )

    def get_item_nr (self, obj):
        obj.item_nr = Items.objects.filter(item_id=self.context.get(id)).count()
        return obj.item_nr 

这是我得到的错误:

Got AttributeError when attempting to get a value for field item_nr on serializer WebsiteSerializer. The serializer field might be named incorrectly and not match any attribute or key on the URL instance. Original exception text was: 'URL' object has no attribute 'item_nr '.


Tags: selfidobjurlfieldget序列化on
1条回答
网友
1楼 · 发布于 2024-10-01 02:28:23

items_nr将是SerializerMethodField而不是{} 该字段将根据您在get_item_nr中返回的内容自动分配数据类型。在

class WebsiteSerializer(serializers.Serializer):
    item_nr = serializers.SerializerMethodField()

    class Meta:
        model = URL
        fields = (
            "id",
            "item",
            "status",
            "item_nr "
        )

    def get_item_nr (self, obj):
        obj.item_nr = Items.objects.filter(item_id=self.context.get(id)).count()
        return obj.item_nr 

相关问题 更多 >