如何在Django中创建ListField模型?

时间:2015-11-17 15:01:06

标签: django django-models

基本上,我想要做的是拥有一个模型类,它可以在一个变量名下拥有任意数量的图像。例如,像这样:

class ListField(models.Model):
    image_list = a list of images

有没有办法在Django中实现这一目标?如果问题太模糊,我可以详细解释我想要做什么,以便给你们一个更好的主意。谢谢!

好的,这里有详细信息:我的网站上有一个漫画模型。如预期的漫画模型有一个领域,是漫画的形象。这些图像通常非常大,并且在手机上效果不佳。我正在使用bootstrap使我的网站响应。所以我想如果我将每个漫画图像分成单独的矩形面板,并将它们上传并存储在一个变量名下,我可以简单地使用Bootstrap的网格系统来响应地显示它们。

因此,我基本上想要一种方法在一个变量名下存储几个图像,并使用循环调用它们。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

在存储大量图像方面,ListField是一个不好的举动,特别是因为它暗示你将数据存储为blob / long字符串。

为要存储的每个图像创建一个模型,使用正确的models.ImageField进行验证等,并使用models.ForeignKey将它们与相关的Comic相关联

例如

class Comic(models.Model):

     title = models.CharField(....)
     ... etc etc


class ComicImage(models.Model):

     comic = models.ForeignKey(Comic, related_name="comic_images")
     image = models.ImageField(upload_to="see/the/django/docs")
     order = models.IntegerField(default=0)  # increment this for each image in a set

     class Meta:
         ordering = ('order', )  # automatically order the images