【问题标题】:Django Rest Framework: Overwriting validation error keysDjango Rest Framework:覆盖验证错误键
【发布时间】:2018-08-01 00:54:35
【问题描述】:

将我的网站翻译成另一种语言时出现问题。 我想正确处理验证错误,让我的前端朋友很好地展示它们。

发生验证错误时,是否有办法覆盖 DRF 响应消息中的密钥? 我的意思是什么 - 我想改变这个:

{
    "name": ["This field is required."]
}

进入:

{
    "username": ["This field is required."]
}

有没有办法在不编写每个验证器的情况下做到这一点?

【问题讨论】:

    标签: python django validation serialization django-rest-framework


    【解决方案1】:

    您可以将ModelSerializer中的name字段更改为username

    示例:

    class CustomSerializer(serializers.ModelSerializer):
        username = serializers.CharField(source='name')
    
        class Meta:
            model = ...
            fields = ('username', ...)
    

    现在在验证错误中,它将改为使用密钥 username

    【讨论】:

    • 这个解决方案的全部问题在于,我需要为不同的语言版本使用不同的服务器(和文件)。我想避免这种情况。