Django中的通用一对一关系

Jam*_*een 5 python generics django django-models django-forms

我有一个图像模型:

class Image(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey()
    image = models.ImageField()
Run Code Online (Sandbox Code Playgroud)

我也有一个模型有领域

class MyModel(models.Model):
    logo = models.ImageField()
    icon = models.ImageField()
    images = generic.GenericRelation(Image)
Run Code Online (Sandbox Code Playgroud)

我想要logo并且icon也要使用通用关系Image。我怎样才能做到这一点?

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

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

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

class MyModel(models.Model):
    logo = models.ForeignKey(Image)
    icon = models.ForeignKey(Image)
    images = generic.GenericRelation(Image)
Run Code Online (Sandbox Code Playgroud)

然后选择,然后在上载之后进行选择logo,并在我打印与该模型相关的信息时从中排除。这将是一个好的解决方案吗?iconimageslogoiconimagesimages