Thanks for the pointer, Nis. Model inheritance made my models so much DRYer that it will be hard to give up, at least psychologically...
And, except for the managers, it worked just as I would expect, and for the managers, it was easy to patch. Maybe I should further test them, or just give up until Django 1.0, which, according to the discussions in the developers' list, will probably have model inheritance implemented. On 17 Temmuz, 14:32, Nis Jørgensen <[EMAIL PROTECTED]> wrote: > omat skrev: > > > Hi all, > > > I have a base class common for all my orthogonal models, that is, > > models that hold content for other models, such as tags. This base > > class also has a manager. Here are the classes: > > > class OrthoManager(models.Manager): > > def get_for_object(self, object): > > ctype = ContentType.objects.get_for_model(object) > > return self.filter(content_type__pk=ctype.id, > > object_id=object.id) > > > def get_for_model(self, model): > > ctype = ContentType.objects.get_for_model(model) > > return self.filter(content_type__pk=ctype.id) > > > class Ortho(models.Model): > > content_type = models.ForeignKey(ContentType, > > editable=False, > > blank=True, > > null=True) > > object_id = models.PositiveIntegerField(blank=True, > > editable=False, > > null=True) > > object = generic.GenericForeignKey('content_type', 'object_id') > > > objects = OrthoManager() > > > When I define my orthogonal model like that: > > > class Tag(Ortho): > > tag = models.CharField(maxlength=50) > > > and try to access its manager, I get a: > > > Programming Error: relation "models_ortho" does not exist > > > i.e. it looks for the "models_ortho" table. > > > If I add: > > > objects = OrthoManager() > > > to the Tag model class (the inherited class), it works fine. > > > It seems that I cannot inherit the manager of the base class. Is this > > by design? Or am I doing something wrong? > > This is by "current" design - subclassing of models is not supposed to > work yet. Here is a writeup of how it will likely work: > > http://code.djangoproject.com/wiki/ModelInheritance > > Since this is currently not supposed to work, I would think behavior is > undefined. Thus i would suggest that you do not subclass models, even if > you can get it to work. > > Nis Jørgensen > (Eagerly awaiting model inheritance as well) --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---