首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django Rest框架:如何设置自定义名称表单non_field_errors?

Django Rest框架:如何设置自定义名称表单non_field_errors?
EN

Stack Overflow用户
提问于 2016-10-23 12:24:41
回答 3查看 3.6K关注 0票数 5

我正在验证我的网站上注册的用户是否给了我唯一的地址(城市、街道、街道号码等)。当它不是唯一的时候,我就会提高serializers.ValidationError

代码语言:javascript
运行
复制
class UserSerializer(serializers.ModelSerializer):
   def validate(self, attrs):
        city = attrs['city']
        street = attrs['street']
        street_number = attrs['street_number']
        apartment_number = attrs['apartment_number'] if 'apartment_number' in attrs else None
        unique = check_address_unique(city, street, street_number, apartment_number)
        if not unique:
            raise serializers.ValidationError(_('Another user has already been registered under this address.'))
        return attrs

问题是,传递错误的字段名是这个标准的non_field_errors

{"non_field_errors":["Another user has already been registered under this address."]}

我想以某种方式给这个错误取一个自定义名称,因此所需的输出是:

{"address":["Another user has already been registered under this address."]}

如何做到这一点?

EN

Stack Overflow用户

发布于 2022-06-22 10:27:26

为了避免在"non_field_errors“键下获得序列化器验证结果,可以在设置文件中的Django的REST_FRAMEWORK dict中提到所需的密钥名。

代码语言:javascript
运行
复制
REST_FRAMEWORK = {
    "NON_FIELD_ERRORS_KEY": <desired key name>
}

这会用您提供的名称覆盖默认的"non_field_errors“键。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40202858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档