Thanks for the responses. There are a number of subclasses and I won't
know the specifics initially. I'll check out the GenericForeighnKey.
Sounds like it is what I want.

Thanks again,

Peter


On Sep 16, 8:34 am, Malcolm Tredinnick <[EMAIL PROTECTED]>
wrote:
> On Mon, 2008-09-15 at 18:10 -0700, Peter Bailey wrote:
> > Hi all. I have a set of classes (web page items like radios,
> > checkboxes, etc.) They are built on a superclass - Item.  I need a
> > join table to link them to specific pages in which I also store a
> > position (PageItem) . Here is a snippet:
>
> > #
> > --------------------------------------------------------------------------- 
> > -------
> > # will use this for subclassing into our item subtypes
> > #
> > --------------------------------------------------------------------------- 
> > -------
>
> > class Item(models.Model):
> >    name = models.CharField(max_length=30)
>
> >    def __unicode__(self):
> >        return self.name
>
> >    class Meta:
> >        abstract = True
>
> > #
> > --------------------------------------------------------------------------- 
> > -------
>
> > class Page(models.Model):
> >    website = models.ForeignKey(Website)
> >    position = models.IntegerField()
> >    file_name = models.CharField(max_length=50)
> >    h1_title = models.CharField(max_length=50)
>
> >    def __unicode__(self):
> >            return self.file_name
>
> >    class Meta:
> >        ordering = ["file_name"]
>
> > #
> > --------------------------------------------------------------------------- 
> > -------
>
> > class PageItem(models.Model):
> >    page = models.ForeignKey(Page, editable=False)
> >    item = models.ForeignKey(Item) # WANT THIS TO POINT TO SPECIFIC
> > SUBCLASS ITEM
> >    position = models.IntegerField()
>
> >    def name(self):
> >            return str(self.item.name)
>
> >    class Meta:
> >            ordering = ['position']
>
> > #
> > --------------------------------------------------------------------------- 
> > -------
>
> > class RadioBoxType(Item):
> >    """A Radio Button object with its specific attributes"""
> >        ......... etc.
>
> > My problem is that I want the item/page relationship in the join table
> > PageItem, so I can track the position. I realize that I can't have a
> > fk to an abstract class though and obviously want it to point to the
> > subclassed object.
>
> So point it at the subclass you want it to point at.
>
> If you mean, however, that you want it to point to one of a number of
> possible subclasses, depending on the instance, then that isn't a
> ForeignKey (a ForeignKey points to one particular model). What you're
> modelling in that case is best done with the GenericForeignKey, since
> that encodes both the content type (i.e. the model type) of the target
> as well as the primary key value.
>
> 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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to