排除Django serializ中的嵌套模型字段

2024-04-25 08:51:22 发布

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

所以我有两个django模型,但是其中一个有一个需要排除的字段,叫做code。我还没有找到使用序列化程序类排除此字段的方法。在

class ModelA(models.Model):
    modelBs = models.ManyToManyField('ModelB')

class ModelB(models.Model):
    # assume all sorts of fields here like name, location, etc..
    code = models.CharField(max_length=200)

我的问题是在序列化模型A时不能排除modelB代码,如下所示:

^{pr2}$

上面的序列化程序不工作。有人知道怎么做吗?在

我目前的输出是:

[
    {
        modelBs: [
                     {name: "Something", code: "XXXX"}
                 ]
    }
]

我想要的输出是:

    [
        {
            modelBs: [
                         {name: "Something"}
                     ]
        }
    ]

Tags: django方法name模型程序model序列化models
1条回答
网友
1楼 · 发布于 2024-04-25 08:51:22

您需要将排除放在ModelBSerializer中。在

class ModelASerializer(serializers.ModelSerializer):
    modelBs = ModelBSerializer(read_only=True, many=True)

    class Meta:
        ...

class ModelBSerializer(serializers.ModelSerializer):
    class Meta:
        ...
        exlude = ("code",)

相关问题 更多 >