django如何创建一个接受带图像值的DictField的序列化程序ListField

uelo1irk  于 2022-11-18  发布在  Go
关注(0)|答案(2)|浏览(121)

正如标题所描述的,我需要创建一个自定义序列化程序ListField,它接受字符串键的字典和Image的值
输入示例:

[ {'1':FirstImage} , {'3',ThirdImage} ]

我尝试过的方法:

customSerializer = serializers.ListField(
        child=serializers.DictField(
            child=serializers.ImageField(allow_empty_file=True, use_url=False)
        )
    )

显然我的序列化器没有工作,因为它应该,任何人都有一个想法,我如何才能使这个工作?提前感谢

plicqrtu

plicqrtu1#

创建一个单独的序列化程序类,并在ListField中使用它,如下所示:

class ImageSerializer(serializers.Serializer):
    id = serializers.IntegerField()
    image = serializers.ImageField(allow_empty_file=True, use_url=False)

class FinalSerializer(serializers.Serializer):
     my_field = serializers.ListField(child=ImageSerializer())
laik7k3q

laik7k3q2#

我建议你不要添加子示例参数,因为这会验证模型表中的所有字段,这反过来会增加端点延迟。
child -用于验证列表中对象的字段示例。如果未提供此参数,则不会验证列表中的对象。
您可以编写自己的验证器方法(仅相关的方法)。

相关问题