djr*_*kev 5 python django django-rest-framework
我正在尝试对模型的Meta使用两个字段(电子邮件和类型)的unique_together,但是错误消息始终是“字段电子邮件,类型必须进行唯一设置”。覆盖unique_together错误消息的最佳方法是什么?
您可以UniqueTogetherValidator在序列化程序上使用(请参阅http://www.django-rest-framework.org/api-guide/validators/#uniquetogethervalidator)。
然后,您可以在初始化时覆盖显示的消息:
UniqueTogetherValidator(message='Your custom message', fields=(field1, field2,))
Run Code Online (Sandbox Code Playgroud)
不幸的是,来自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
Run Code Online (Sandbox Code Playgroud)