如何更改django模型中的unique_together错误消息



型号:

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

我想将错误信息页更改为{"字段2":"此值已存在"}

如何覆盖django模型中的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

最新更新