Validation 如何在many=True时验证slug字段的输入?

Validation 如何在many=True时验证slug字段的输入?,validation,django-rest-framework,Validation,Django Rest Framework,我有一个模型艺术家的序列化程序,它通过一个slug字段链接到其他模型相册的几个实例。在序列化形式中,我希望将此关系捕获为字符串列表,即艺术家有一个专辑名称列表 类ArtistSerializerModelSerializer: 相册=SlugRelatedFieldslug\u field='name', 多=真, queryset=Albums.objects.all 此代码的问题在于,如果用户发送的数据不正确,而不是列表,则会收到无用的错误消息 对于输入{albums:Best Of},错误

我有一个模型艺术家的序列化程序,它通过一个slug字段链接到其他模型相册的几个实例。在序列化形式中,我希望将此关系捕获为字符串列表,即艺术家有一个专辑名称列表

类ArtistSerializerModelSerializer: 相册=SlugRelatedFieldslug\u field='name', 多=真, queryset=Albums.objects.all 此代码的问题在于,如果用户发送的数据不正确,而不是列表,则会收到无用的错误消息

对于输入{albums:Best Of},错误消息类似于{albums:[名称为T的对象不存在。]}。它在技术上是正确的,但没有告诉用户问题是什么。我想返回一条错误消息,指出关键相册的值必须是列表

实现这一目标的正确方法是什么

到目前为止,我已经能够让它工作,但这不是一个很好的解决方案。我将ManyRelatedField子类化,以便在输入不是列表时引发ValidationError。该类随后用于AlbumsField的许多初始化,AlbumsField是SlugRelatedField的子类

类StrictManyRelatedFieldserializers.ManyRelatedField: def获取值自身,数据: res=superStrictManyRelatedField,self.get\u valuedata 如果不是ISINSTANCES,请列出: 引发序列化程序。验证错误 {self.field_name:['需要一个列表]} 返回res 类AlbumsFieldserializers.SlugRelatedField: @类方法 定义多个初始值,*args,**kwargs: 子关系=cls**kwargs 返回StrictManyRelatedField*args,子关系=子关系