将多个图像与类对象逻辑相关联

时间:2016-06-23 00:58:29

标签: django python-3.x django-models logic

我想在创建一个类对象时将零到三个图像关联起来,我不知道最好的方法。

示例:当用户创建图片竞赛时,他们使用零到三个图像定义他们的图片样式。这些是静态图像,因此永远不会更新。

我能想到的唯一方法是创建一个名为stylePictures的单独类,并在Contest中有三个字段,说“styleOne”“styleTwo”和“styleThree”,它们可以为null。这似乎不是最有效的方法。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我会创建两个单独的类。通过这种方式,您的功能可以轻松演变为将来会使用更多图片的内容。

class PictureContest(models.Model):
    # fields

class PictureStyle(models.Model):
    image = models.FileField(upload_to="upload/picture_style")
    picture_contest = models.ForeignKey("PictureContest")

获取与一场比赛相关的所有图片样式。

首先,你必须隔离你想要的图片竞赛。

pc = PictureContest.objects.filter(id=2) # find your picture contest

然后过滤以pc.id作为字段值的图片样式。

pic_styles = PictureStyle.objects.filter(picture_contest__id=pc.id)