- January 24, 2012
- Not specified
- model validation subclass
- 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
- Model inheritance with content type by crucialfelix 6 years, 11 months ago
- unique validation for ModelForm by whiskybar 7 years, 4 months ago
- Model inheritance with content type and inheritance-aware manager by dan90 6 years, 11 months ago
- Play nice with ModelAdmin mixins by chris.dickinson 6 years, 7 months ago
- Run model validation before saving a model instance by buriy 4 years, 6 months ago