如何重新排列Django数据库中保存对象的顺序

2024-09-30 18:16:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用jQueryUISortable允许用户通过拖放方式对上传的图像进行排序。其工作原理如下:

当他们上传一些图片时,他们会被引导到另一个页面,所有新上传的图片都会显示在左边的一个列中。用户可以按照自己的意愿将照片从左栏放到右栏。我使用jQuery Serialize来获取排序数组。在

我的问题是,如何更新数据库以重新排列图像并保存与Serialize返回的相同的顺序?在

谢谢


Tags: 用户图像数据库排序方式图片页面数组
1条回答
网友
1楼 · 发布于 2024-09-30 18:16:42

不要改变数据库中的顺序,而是让数据库对结果进行排序。你需要做的就是给数据库一些排序依据。在

向模型中添加一个order整数字段,并在用户为图像创建顺序后更新这些值;这是一个简单的编号操作。然后,当您查询要显示的图像时,在该字段上对它们进行排序。在

如果图像是在用户之间共享的,则需要将其设置为一个单独的模型;该模型将用户映射到图像,并附加顺序:

class ImageOrder(Model):
    """Keeps track ordering of images for a given user"""
    order = IntField()
    user = ForeignKey(User)
    image = ForeignKey(Image)

现在,您可以根据图像与给定用户的关系过滤图像,并按order字段对其排序:

^{pr2}$

然后使用每个ImageOrder实例的.image字段。在

相关问题 更多 >