Constraints instead of clean(), full_clean() · Issue #22 · HackSoftware/Django-Styleguide (original) (raw)
What do you think about moving all the logic from custom clean()
methods on the model to the db constraints?
https://docs.djangoproject.com/en/2.2/ref/models/constraints/
Yes, some logic is not representable as a constraint, it could be an exception which could still reside inside the clean()
method. But otherwise, constraints are always enforced, there's no need to remember to call full_clean()
method. Also, there are usually faster than python validation.