If you feel it's better to keep it as is that's fine with me, I just thought of it as a way to make things simpler here.

Btw I think both classes and functions can be used as standard validators, including in the registration forms -- actually with classes you are emulating a function behavior with __call__(), django expects functions. The main difference, and imho the reason to use classes, is when it's useful to maintain state on the validator itself -- like when you want to be able to use the same validator function, but instantiated with different parameters (as you can't always pass these parameters upon the validator call, which is done internally by Django on fields, etc.). However given the use here, you don't need it, as the values used by your validators can be changed through the configuration.