1

我正在构建一个具有图像库的 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“订单”来控制排序的运行编号。我认为必须有一种更智能/更好的方法来做到这一点(另一个模型?),并且还能够通过管理界面轻松控制它。

4

3 回答 3

1

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

于 2009-11-15T18:32:00.553 回答
0

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

于 2009-11-15T18:35:30.317 回答
0

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

于 2015-04-21T17:46:30.337 回答