﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
13705	Calling a method from within a django model save() override	jonathan_livni	nobody	"I'm overriding a django model save() method. Within the override I'm calling another method of the same class and instance which calculates one of the instance's fields based on other fields of the same instance.

{{{
class MyClass(models.Model):
    field1 = models.FloatField()
    field2 = models.FloatField()
    field3 = models.FloatField()

    def calculateField1(self)
        self.field1 = self.field2 + self.field3

    def save(self, *args, **kwargs):
        self.calculateField1()
        super(MyClass, self).save(*args, **kwargs)
}}}

The override method is called when I change the model in admin. Alas I've discovered that within calculateField1() field2 and field3 have the values of the instance from before I edited them in admin. If I enter the instance again in admin and save again, only then field1 receives the correct value as field2 and field3 are already updated.

This seems like wrong behavior on django's side to me.

I cannot implement the calculation within the save() as calculateField1() is actually quite long and I need it to be called from elsewhere as well.
"		closed	Uncategorized	1.2		worksforme			Unreviewed	0	0	0	0	0	0
