Django中的通用一对一关系

时间:2014-11-02 12:00:51

标签: python django generics django-models django-forms

我有一个图像模型:

class Image(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey()
    image = models.ImageField()

我还有一个有字段的模型

class MyModel(models.Model):
    logo = models.ImageField()
    icon = models.ImageField()
    images = generic.GenericRelation(Image)

我希望logoicon也使用通用关系Image。我怎么能这样做?

我在许多模型中使用通用模型Image,因此它必须是通用关系。我只想对所有图像使用相同的模型,即使它是图标,个人资料图片等等。

如果Django有一个字段generic.GenericOneToOneRelation(Image)或其他东西,最好的是: - )

我能想到的唯一解决方案是

class MyModel(models.Model):
    logo = models.ForeignKey(Image)
    icon = models.ForeignKey(Image)
    images = generic.GenericRelation(Image)

,然后在上传logo后选择iconimages,并在我打印logo时排除iconimages {1}}与此模型相关。这会是一个很好的解决方案吗?

0 个答案:

没有答案