我有一个模型序列化器(一个艺术家),它链接到其他模型(专辑)的几个实例和一个slug字段。在序列化形式中,我希望将此关系捕获为字符串列表(即艺术家有一个专辑名称列表)。
jQuery
此代码的问题在于,如果用户发送的数据不是列表中的错误数据,则会收到无用的错误消息。
对于输入jQuery
,错误消息将类似于class ArtistSerializer(ModelSerializer):
albums = SlugRelatedField(slug_field='name',
many=True,
queryset=Albums.objects.all())
。它在技术上是正确的,但不告诉用户问题是什么。我想返回一条错误消息,指出密钥{"albums": "The Best Of"}
的值必须是列表。
实现这个目标的正确方法是什么?
到目前为止,我已经能够使它工作,但它不是一个非常好的解决方案。当输入不是列表时,我将{"albums": ["Object with name=T does not exist."]}
子类化为albums
。然后,此类在ManyRelatedField
ValidationError
中使用,many_init
是AlbumsField
的子类。
SlugRelatedField