[英]How to change unique_together error message in django model?
Model:
class MyModel(models.Model):
field1 = models.CharField(max_length=50)
field2 = models.CharField(max_length=50)
class Meta:
unique_together = ('field1', 'field2')
错误: UNIQUE 约束失败:field1、field2
我想将错误消息更改为 {'field2': 'This value is already exist'}
或者
如何覆盖 django model 中的 unique_error_message()?
我试试这个:
def unique_error_message(self, model_class, unique_check):
return ValidationError(message='My custom error message')
但是没有用。
我认为一种解决方案是在save
方法中捕获错误并引发你想要的任何东西:
from django.db import IntegrityError
class MyModel(models.Model):
field1 = models.CharField(max_length=50)
field2 = models.CharField(max_length=50)
class Meta:
unique_together = ('field1', 'field2')
def save(self, *args, **kwargs):
try:
return super().save(*args, **kwargs)
except IntegrityError as err:
if "unique constraint" in err.args[0]:
# raise what you want
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.