views:

41

answers:

0

I've just started using Django's contenttypes framework (and it's pretty awesome). I have an Area object that has many specialised Block objects - I've modeled it as below.

class Area(models.Model):
    ...

class SomeBlock(models.Model):
    ...

class AreaBlock(models.Model):
    area = models.ForeignKey(Area)
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    block_object = generic.GenericForeignKey('content_type', 'object_id')

This works very well. Now I want to register these specialised blocks in their own table along with extra 'global' information about it.

class BlockRegistrar(models.Model):
    ...

My problem is joining SomeBlock to it's global information in the BlockRegistrar model. A foreignkey in the block table would be obvious, but it wouldn't ever change and I can't figure out how to use django's ContentType table to do these joins.

Any help?