On Wed, Nov 3, 2010 at 11:50 PM, Michael <mhall...@gmail.com> wrote:
> nevermind my previous email, I see now you are talking about the test1
> class, which isn't abstract.
>
> In that case I assume the problem is Python's multiple inheritance,
> where the first parent it finds with a save() method gets called, and no
> others.  It's probably calling BaseB.save(), which does nothing.  If you
> want test1.save to call BaseA.save, you'll have to make that explicit:
>
> class test1(BaseA, BaseB):
>    integer = models.IntegerField()
>
>    def save(self, *args, **kargs):
>        BaseA.save(self, *args, **kargs)


Hi Michael, thanks for your answer :).
I also thought about this and in order to discart it I add another
inheritance level in clase BaseA with a print call, just like this:

class BaseAA(models.Model):
    class Meta:
        abstract = True

    def save(self, *args, **kwargs):
        print "Inside save method!!!"


class BaseA(BaseAA):
    class Meta:
        abstract = True

    def save(self, *args, **kwargs):
        super(BaseA, self).save(*args, **kwargs)

print "Inside save method!!!" is trigged, so BaseA.save() and
super.(BaseA).save() is also called.

-- 
Marc

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to