Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7k
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 useviolation_error_code .
Line to fix:Link to the line for fix - here is is hard coded tocode='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 codename
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')]}]