Model:
class MyModel(models.Model):
field1 = models.CharField(max_length=50)
field2 = models.CharField(max_length=50)
class Meta:
unique_together = ('field1', 'field2')
Error: UNIQUE constraint failed: field1, field2
I want to change error mesaage to {'field2': 'This value is already exist'}
OR
How to override unique_error_message() in django model?
I try this:
def unique_error_message(self, model_class, unique_check):
return ValidationError(message='My custom error message')
But didn't work.
I think one solution can be catching error in save
method and raise whatever you want:
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.