我正在验证我的网站上注册的用户是否给了我唯一的地址(城市、街道、街道号码等)。当它不是唯一的时候,我就会提高serializers.ValidationError
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."]}
如何做到这一点?
发布于 2022-06-22 10:27:26
为了避免在"non_field_errors“键下获得序列化器验证结果,可以在设置文件中的Django的REST_FRAMEWORK dict中提到所需的密钥名。
REST_FRAMEWORK = {
"NON_FIELD_ERRORS_KEY": <desired key name>
}这会用您提供的名称覆盖默认的"non_field_errors“键。
https://stackoverflow.com/questions/40202858
复制相似问题