如何强制图库中的图片顺序

时间:2009-11-15 18:20:38

标签: django sorting image gallery

我正在构建一个具有图片库的django应用程序,并且客户端坚持要按特定顺序显示图像。我使用管理界面上传图像并编辑它们的属性,我的模型中有一个ImageFile类,基本上是这样的:

class ImageFile(models.Model):
    """represents an image file"""

    # the image description
    description = models.CharField(max_length=45)

    # the actual image
    image = models.ImageFile(upload_to='images') 

    # running number representing the order on the page
    order = models.IntegerField()

    def __unicode__(self):
          return "%s" % (self.description)

    class Meta:
        db_table = 'images'

我正在使用IntegerField'order'来运行控制排序的号码。我认为必须有一个更聪明/更好的方法(另一个模型?),并且还能够通过管理界面轻松控制它。

3 个答案:

答案 0 :(得分:1)

我支持你想给用户分类图像的可能性,(无论如何你想通过时间添加排序,最好的方式是通过id订购),所以,如果有像Gallery(图像)这样的模型也许你应该存储来自galery的图像ID元组(在DB中作为文本对象)。阅读后将其转换为元组,并且您已预期订单。希望我能帮忙。

答案 1 :(得分:0)

如果图片的顺序是他们上传的顺序,您可以使用时间戳来订购它们。

答案 2 :(得分:0)

我使用相同的方法(在模型中使用整数“order”字段)来定义排序。但是,我自定义了管理员以允许拖放属于相册的图像来定义订单。当管理员点击“保存”按钮时,将根据拖放后的当前订单自动计算订单。所有数据都将提交给服务器以保存到数据库。