-
-
Notifications
You must be signed in to change notification settings - Fork 7k
Open
Description
Will be nice to have an option to pass custom code for ValidationError based on name of UniqueTogether constraint as it's unique or better to use violation_error_code .
Line to fix: Link to the line for fix - here is is hard coded to code='unique'
Example:
class Pet(models.Model):
name = models.CharField(max_length=100)
animal_type = models.CharField(max_length=100)
owner_name = models.CharField(max_length=100)
class Meta:
constraints = [
UniqueConstraint(
fields=["name", "animal_type"],
name="unique_pet",
violation_error_code="unique_pet",
),
UniqueConstraint(
fields=["owner_name", "animal_type"],
name="unique_pet_type",
violation_error_code="unique_pet_type",
),
]
If there are 2 different constraints there is no way to distinguish errors to know which constraint failed as all errors always have code unique and look like:
[{'non_field_errors': [ErrorDetail(string='The fields name, animal_type must make a unique set.', code='unique')]}]
For code name
attr of constraint can be used. And error could looks like:
[{'non_field_errors': [ErrorDetail(string='The fields name, animal_type must make a unique set.', code='unique_pet_type')]}]
Metadata
Metadata
Assignees
Labels
No labels