我正在创建的应用程序向用户显示所有模型实例的项目列表。我希望他们能够使用JQuery的sortable()方法对项目进行排序。这是实施和正常工作,但我需要一种方法来保存它们列出的顺序。此列表更新频率较高,项目被删除并添加新项目。用Django&Ajax制作用户可排序列表的有效方法是什么?
我最初的方法是给模型一个“位置”列,每次列表项在列表中移动时,更改列表中所有项的位置值。但是,这将需要我每次对1进行排序时获取所有模型对象,并对每个对象应用更改。
我能想出的唯一方法是给每个“重量”值,而不是他们的实际列表位置。在每个值之间留出足够的空间以填补空白。举例来说,权重为10,20,30,120。如果用户将第四项移动到第二位置,则看第一项和第二项并选择15作为其权重。这当然只能在所有重量必须重新计算才能放置物品之前运行。
我是否在推翻这个?我不期望从这个应用程序的高使用率,所以额外的模型调用使用位置列不会真的是一个问题 - 但如果有一个更好,更有效的方法来做到这一点,我仍然会喜欢做它那样。
感谢:-)