sounds like magic, though django usually handles magic well :)
On Tue, Jun 8, 2010 at 7:18 PM, John M <retireonc...@gmail.com> wrote: > I was hoping to avoid that type of code, but instead have put a field > in the linked parent to indicate what type the child is and then have > a method in the parent as a property which returns the correct child > type. Works for now, would be nice if the framework kept track of it, > but it's a rare case. > > J > > On Jun 8, 12:41 pm, Dan Harris <dih0...@gmail.com> wrote: >> Not sure if this will work as I don't usually do much with model >> inheritance but according to docs >> at:http://docs.djangoproject.com/en/dev/topics/db/models/#id7 >> this might work (not pretty, but somewhat minimal code)... >> >> p = Parent1.objects.get(id=1) >> try: >> p.childa.basemthod() >> except: >> try: >> p.childb.basemethod() >> except: >> raise Execption("not ChildA or ChildB") >> >> Django adds in the lower cased name of the class as a property when >> you query the super class and throws an exception if you access a >> property that isn't there. So something like the above "might" work. >> And obviously if you have like 5 child classes, this gets ugly very >> quickly. >> >> Dan Harris >> dih0...@gmail.com >> >> On Jun 8, 3:27 pm, John M <retireonc...@gmail.com> wrote: >> >> > Hmm, that doesn't really get me what I want, it just caches the >> > related child objects in one SQL query. >> >> > What I want is a single interface and have django figure out what type >> > of child object I have (like multiple inheritance but 'better'). >> >> > So in my example: >> >> > p = Parent1.objects.get(id=1) >> > p.child.basemethod() >> >> > django would know what p.child is (either ChildA or ChildB) and I >> > wouldn't need to know. >> >> > Is that available? >> >> > J >> >> > On Jun 8, 11:09 am, Dejan Noveski <dr.m...@gmail.com> wrote: >> >> > >http://docs.djangoproject.com/en/dev/ref/models/querysets/#id4 >> >> > > select_related() >> >> > > On Tue, Jun 8, 2010 at 8:05 PM, John M <retireonc...@gmail.com> wrote: >> > > > I've gotten model inheritance working just fine, but was hoping >> > > > someone could confirm the best way to access the model. >> >> > > > When I have a Base model which has a ForeignKey to a parent table, and >> > > > that base model has inherited models after it, how can I refer to only >> > > > one name when referencing the parent model. >> >> > > > As an example: >> >> > > > class Base(models.Model): >> > > > parent = models.ForeignKey(Model1) >> >> > > > class Meta: >> > > > abstract = True >> >> > > > def basemethod(): >> > > > print "hello" >> >> > > > class ChildA(Base): >> > > > pass >> >> > > > class ChildB(Base): >> > > > pass >> >> > > > p1 = Model1() >> > > > p1.save >> > > > x = ChildA() >> > > > x.parent = P1 >> > > > x.save() >> >> > > > p2 = Model1() >> > > > p2.save() >> > > > y = ChildB() >> > > > y.parent = P1 >> > > > y.save() >> >> > > > Now, I want to access the children from the parent, but I don't want >> > > > to have to know what base class they are, is there a way to do that? >> > > > Right now I'm using a property which figures it out based on some >> > > > other fields, but would love to be able to say >> >> > > > p = Parent1.objects.get(id=1) >> > > > p.child.basemethod() >> >> > > > Is this possible? >> >> > > > Thanks >> >> > > > -- >> > > > 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<django-users%2bunsubscr...@google >> > > > groups.com> >> > > > . >> > > > For more options, visit this group at >> > > >http://groups.google.com/group/django-users?hl=en. >> >> > > -- >> > > -- >> > > Dejan Noveski >> > > Web Developer >> > > dr.m...@gmail.com >> > > Twitter:http://twitter.com/dekomote|LinkedIn:http://mk.linkedin.com/in/dejannoveski > > -- > 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. > > -- 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.