Mar*_* M. 1 django django-rest-framework
我正在验证在我的网站上注册的用户是否给我唯一的地址(城市,街道,街道号码等),如果该地址不是唯一的,那么我正在提出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
Run Code Online (Sandbox Code Playgroud)
问题是传递错误的字段名称是以下标准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."]}
如何做到这一点?
对于单个ValidationError,您可以这样做:
raise serializers.ValidationError({
'address': _('Another user has already been registered under this address.')
})
Run Code Online (Sandbox Code Playgroud)
如果要全局覆盖此名称,则可以使用NON_FIELD_ERRORS_KEYREST框架设置。
| 归档时间: |
|
| 查看次数: |
878 次 |
| 最近记录: |