在另一个模型中存储GenericForeignKey content_type?

时间:2010-04-07 04:47:58

标签: django-models

我的数据建模中有一个典型的定义/实例情况。我正在尝试将GenericForeignKey的content_type存储在另一个模型(定义模型)中,如下所示:

class IndicatorFieldInstance(models.Model):
    definition = models.ForeignKey(IndicatorField)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey(definition.content_type, 'object_id')
    indicator_instance = models.ForeignKey(IndicatorInstance)

我也尝试过这样:

content_object = generic.GenericForeignKey('definition__content_type', 'object_id')

这些方法似乎都不起作用。是否有可能实现这一目标?

供参考,这是定义模型:

class IndicatorField(models.Model):
    name = models.CharField(max_length='255')
    content_type = models.ForeignKey(ContentType)
    indicator = models.ForeignKey(Indicator)

谢谢,皮特

1 个答案:

答案 0 :(得分:1)

如果您不介意自己进行查找,那么您甚至不需要 GenericForeignKey。只需将其作为一个属性,从相应的字段进行查找并返回模型。除非你做更多工作,否则你将失去任何反向功能,但大部分时间都不是你所关心的。