calling self.clean() before super.save()

152 views
Skip to first unread message

Mike Dewhirst

unread,
Apr 4, 2021, 7:34:42 PM4/4/21
to Django users
Is it sensible to generally call self.clean() in a model's save() method
prior to calling super().save()

Until now I have been calling clean() deliberately prior to calling
save() but I have a lot of models where save() pre-processes data just
prior to calling the model's super().save(*args, **kwargs)

I feel as though it would more robust to pre-process the data, then call
self.clean() and finally make the super call.

Thanks for any advice.

Cheers

Mike

--
Signed email is an absolute defence against phishing. This email has
been signed with my private key. If you import my public key you can
automatically decrypt my signature and be sure it came from me. Just
ask and I'll send it to you. Your email software can handle signing.


OpenPGP_signature

Ryan Nowakowski

unread,
Apr 5, 2021, 10:24:09 AM4/5/21
to django...@googlegroups.com
I believe ModelForm calls your model's self.clean so if you use it, or use the admin which uses it, you'll need to make sure that clean is idempotent since it'll get called at least twice in that case.

Mike Dewhirst

unread,
Apr 5, 2021, 8:35:31 PM4/5/21
to django...@googlegroups.com
Thank you Ryan. I'm relatively sure that I only raise exceptions in clean() everywhere. But I will double-check to be sure to be sure.

Cheers

Mike

--
(Unsigned mail from my phone)

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CBAFE56E-1466-4538-A4D2-20B90D088366%40fattuba.com.
Reply all
Reply to author
Forward
0 new messages