Le Jeudi 9 Mars 2006 12:58, bruno desthuilliers a écrit :

Hi,

> hello hello
>
> I must be a bit dumb, but I find myself a bit stucked with model
> subclassing. Here's the problem: how does one call on the superclass
> method when extending this method in the subclass ? ie:
>
> class Parent(meta.Model):
>   ....
>   def my_method(self):
>      do_something_here
>
>
> class Derived(Parent):
>   ....
>   def _pre_save(self):
>      do_some_other_things_here
>      Parent.my_method(self) # raises NameError, "Parent" is not defined
>      parents.Parent.my_method(self) # idem, "parents" is not defined
>

I guess you should do 

class Derived(Parent):
        ....
        def _pre_save(self):
        do_some_other_things_here
        self.my_method()

You just inherit fields and methods from Parent. Your object is not a child of 
Parent but an "extension" of Parent.

Regards,

Laurent.

>
> Is this a known issue, or I'm I missing something ? FWIW, the method I'm
> trying to extend is actually _pre_save() - but I don't think it has much
> to do with this problem..
>
> NB : I've solved the problem at hand using a template method pattern as
> a workaround, but if the bug is - as often - between the chair and the
> keyboard, please let me know...
>
> TIA


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to