Ok looks reazonable. But be something like:

p = Person(name='test')
s = Student(person=p, course='test course')

or

s = Student(parent=p)

is desirable and easy to implement a copy data from Person instance to
Student.


On Jan 3, 1:02 am, Malcolm Tredinnick <malc...@pointy-stick.com>
wrote:
> On Fri, 2009-01-02 at 16:29 -0800, carlopires wrote:
> > Hi,
>
> > I'm trying Multi Table Inheritance with:
>
> > class Person(models.Model):
> >    name = CharField(max_length=30)
>
> > class Student(Person):
> >    course = CharField(max_length=30)
>
> > on db shell:
>
> > p = Person(name='Carlo')
> > p.save()
>
> > Why I can't:
>
> > s = Student(p)
> > s.save()
>
> > ?
> > How Can I evolute a Person to Student ?
>
> You can't. At least at the moment -- it's a sometimes requested feature,
> but there are arguments against allowing it as well. Maybe one day we'll
> add it.
>
> Realise that you can't do this in Python, either, which is why it's not
> completely weird. If B is a subclass of A and you have an instance of A,
> you cannot create an instance of B that is an evolved version without
> copying all the data from the first instance into a new B instance.
> That's exactly what you need to do here. Copy all the p items into the
> Student constructor. So, in this way, model inheritance behaves like
> Python (which is always the intention, as much as possible -- although
> leaky abstractions interfere in both directions at times).
>
> Regards,
> Malcolm
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@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