如何使用many = True验证对slug字段的输入?

时间:2015-04-29 07:55:58

标签: validation django-rest-framework

我有一个模型序列化器(一个艺术家),它链接到其他模型(专辑)的几个实例和一个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_initAlbumsField的子类。

SlugRelatedField

0 个答案:

没有答案