My personal opinion on this is that we shouldn't put this into pre_save
- I'd rather not have us doing a query before we get that far (and I've
seen quite a few things that do some validation in pre_save, so
cancellation happens reasonably often).
I'm also not particularly fond of adding yet another signal - we risk
making it a mess of connection points, and signal calls, even if empty,
do have overhead.
My preferred solution is either to not ship this, or replace it with a
decorator which does this for you (so you can wrap your pre_save
listener function in the decorator, which does the existence query for
you, and which also passes this information back up to the model
instance so we don't end up doing three queries). That way, people who
want this can have it, we don't have a useless extra query in nearly any
scenario, and we don't change current behaviour.
Andrew
For the record, I concur with Andrew's reasoning.
Yours,
Russ Magee %-)