在Django Rest Framework中覆盖unique_together错误消息

时间:2018-04-10 10:14:31

标签: python django django-rest-framework

我正在尝试将Meta_together用于Meta的两个字段(电子邮件和类型),但错误消息始终是“字段email,type必须创建一个唯一的集合”。覆盖unique_together错误消息的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

选项1:序列化

您可以在序列化程序上使用UniqueTogetherValidator(请参阅http://www.django-rest-framework.org/api-guide/validators/#uniquetogethervalidator)。

然后,您可以在初始化时覆盖显示的消息:

UniqueTogetherValidator(message='Your custom message', fields=(field1, field2,))

选项2:模型验证

不幸的是,Django对unique_together ValidationError的错误消息是硬编码的。如果您想更改错误消息,我可以想到的方法是覆盖模型的unique_error_message方法。

def unique_error_message(self, model_class, unique_check):
    error = super().unique_error_message(model_class, unique_check)
    # Intercept the unique_together error
    if len(unique_check) != 1:
        error.message = 'Your custom message'
    return error