0
我有一些模型需要与某些图像有多对多的关系。我不想单独创建每个关系,而是希望获得一些可用于我所有模型的通用模型关系。所以我创建图像和模型的ImageItem(我不知道如果我在正确的轨道上。):Django在仿制模型上的多对多关系
from django.contrib.contenttypes import generic
from django.contrib.contenttypes.models import ContentType
class Image(models.Model):
title = models.CharField(max_length=100)
image = models.ImageField(upload_to='images')
class ImageItem(models.Model):
image = models.ForeignKey(Image)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
object = generic.GenericForeignKey('content_type', 'object_id')
我想要做的是,每次我创建一个新的形象,我想要选择要将此图像分配给的对象。所以,进入管理,我需要有这样的:
Image: chicago_bulls.jpg
Selected model: Player
Selected:
Michael Jordan
Scotie Pippen
或
Image: kobe_bryant.jpg
Selected model: Team
Selected:
Los Angeles Lakers
US National Team
是我的模型设计是否正确?我也想使用ModelMultipleChoiceField,但我无法弄清楚如何做到这一点。
嗨阿里。感谢您的答复。基本上我试图从图像管理页面设置产品图像。 1)选择图像2)选择团队或玩家将图像添加到。对不起,我猜测这有点混乱,有点不符合标准。 – pocoa
那么Django的管理员中GenericForeignKey的标准渲染有什么问题?看看这个详细的解释:http://blog.yawd.eu/2011/admin-site-widget-generic-relations-django/当然,你可以添加一些JavaScript,使小部件更加可用,但一开始应该给你你想要的。 – arie
感谢您的链接。似乎没有简单的方法来做到这一点。 – pocoa