The pre_save signal seems to be called twice when adding the model
object to db and change to the instance object during pre_save don't
get saved.
{{
def do_negative_amount(sender, instance, signal, *args, **kwargs):
print instance.transaction_type
if instance.id is None and instance.transaction_type == 'M':
instance.amount = float(instance.amount) * float(-1)
class FinancialTransaction(models.Model):
transaction_type = models.ForeignKey(TransactionType)
...
dispatch.connect(do_negative_amount, signal=signals.pre_save,
sender=FinancialTransaction)
}}
I registered the FinancialTransaction with Admin (nfa branch).
No 1.) The above print statement in the do_negative_amount() function
prints twice when I click the add button 'once' in the nfa to add the
entry to db. Surely this shouldn't happen?
No 2.) The *** instance.amount = float(instance.amount) * float(-1)
*** in the do_negative_amount() function does make the change to the
instance.amount attribute (e.g. 850 becomes -850). However, the change
is not reflected in the new database entry. (In db, its 850 instead of
the modified -850.) I would expect the instance reference passed
through the do_negative_amount() function to be modifiable. Its a
pre_save signal / step. Maybe I'm missing something.
Regards,
-Alen Ribic
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---