Backend Development
Django
Subjective
Oct 03, 2025
What are Django model validators and how to create custom ones?
Detailed Explanation
Django model validators:\n\n**Built-in Validators:**\n• EmailValidator\n• URLValidator\n• RegexValidator\n• MinLengthValidator, MaxLengthValidator\n• MinValueValidator, MaxValueValidator\n\n**Custom Validator Function:**\n```python\nfrom django.core.exceptions import ValidationError\n\ndef validate_even(value):\n if value % 2 != 0:\n raise ValidationError('%(value)s is not even', params={'value': value})\n\nclass MyModel(models.Model):\n number = models.IntegerField(validators=[validate_even])\n```\n\n**Custom Validator Class:**\n```python\nclass RangeValidator:\n def __init__(self, min_val, max_val):\n self.min_val = min_val\n self.max_val = max_val\n \n def __call__(self, value):\n if not (self.min_val <= value <= self.max_val):\n raise ValidationError(f'Value must be between {self.min_val} and {self.max_val}')\n```\n\n**Model-level Validation:**\n• Override clean() method\n• Called during form validation
Discussion (0)
No comments yet. Be the first to share your thoughts!
Share Your Thoughts