我正在尝试将Meta_together用于Meta的两个字段(电子邮件和类型),但错误消息始终是“字段email,type必须创建一个唯一的集合”。覆盖unique_together错误消息的最佳方法是什么?
答案 0 :(得分:3)
您可以在序列化程序上使用UniqueTogetherValidator
(请参阅http://www.django-rest-framework.org/api-guide/validators/#uniquetogethervalidator)。
然后,您可以在初始化时覆盖显示的消息:
UniqueTogetherValidator(message='Your custom message', fields=(field1, field2,))
不幸的是,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