Jquery 使用Django&;制作用户可排序列表的有效方法是什么;AJAX
我正在创建的应用程序向用户显示所有模型实例的项目列表。我希望他们能够使用JQuery的sortable()方法对项目进行任意排序。这是实现和正常工作,但我需要一种方法来保存它们的列出顺序。此列表会经常更新,删除项目并添加新项目 我最初的方法是给模型一个“位置”列,每次列表项在列表中移动时,都会更改列表中所有项的位置值。但是,这需要我在每次对1进行排序时获取所有模型对象,并对每个对象应用更改 我唯一能想到的另一种方法是给每个人一个“权重”值,而不是他们的实际列表位置。在每个值之间留出足够的空间以填补空白。例如,权重为10、20、30和40。如果用户将第四个项目移动到第二个位置,请查看第一个和第二个项目,并选择15作为其重量。当然,这只会在需要重新计算所有权重才能放置项目之前起作用 我是不是想得太多了?我不希望这个应用程序的使用率很高,所以使用position列的额外型号呼叫不会真的是一个问题-但是如果有更好、更有效的方法来实现这一点,我仍然更愿意这样做Jquery 使用Django&;制作用户可排序列表的有效方法是什么;AJAX,jquery,ajax,django,Jquery,Ajax,Django,我正在创建的应用程序向用户显示所有模型实例的项目列表。我希望他们能够使用JQuery的sortable()方法对项目进行任意排序。这是实现和正常工作,但我需要一种方法来保存它们的列出顺序。此列表会经常更新,删除项目并添加新项目 我最初的方法是给模型一个“位置”列,每次列表项在列表中移动时,都会更改列表中所有项的位置值。但是,这需要我在每次对1进行排序时获取所有模型对象,并对每个对象应用更改 我唯一能想到的另一种方法是给每个人一个“权重”值,而不是他们的实际列表位置。在每个值之间留出足够的空间以填
谢谢:-)我会在浏览器中跟踪排序顺序,并在每次对表进行排序时向服务器发出ajax调用,将排序顺序保存到会话变量中。(http://docs.djangoproject.com/en/dev/topics/http/sessions/)如果必须将其保存到以后,则可以向模型中添加权重或订单字段,然后在覆盖的保存方法中放入逻辑以处理不断变化的权重。 http://stackoverflow.com/questions/817284/overriding-the-save-method-in-django-modelform 然后可以在查询集中使用order by
现在你让我想得太多了!:) 您可以采用链表样式的方法。给出你的模型前后字段(prev,next,不管你想叫它们什么)。您仍然需要权重字段进行排序,但我认为您可以使用字符字段按字典顺序进行排序 因此,添加新条目意味着标准的链表插入: