Login

Validating Model subclass

Author:
slacy
Posted:
January 24, 2012
Language:
Python
Version:
Not specified
Score:
0 (after 0 ratings)

If you inherit from ValidatedModel instead of from models.Model, then full_clean() will be called before save().

So, add validators to your field definitions, and all your fields will be validated before they go to the database.

The same thing can be accomplished with a pre_save signal, but the code is quite a bit messier than the simple inheritance above.

1
2
3
4
5
6
7
class ValidatedModel(models.Model):
    def save(self, *args, **kwargs):
        self.full_clean()
        super(ValidatedModel, self).save(*args, **kwargs)

    class Meta:
        abstract = True

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 2 months, 2 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 2 months, 3 weeks ago
  3. Serializer factory with Django Rest Framework by julio 9 months, 2 weeks ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 10 months, 1 week ago
  5. Help text hyperlinks by sa2812 11 months ago

Comments

Please login first before commenting.