在Python Flask中如何允许用户重新安排列表项和在数据库中记录
-
21-12-2019 - |
题
我有一个烧瓶sqlalchemy bootsrap应用程序。 我的模板呈现了一个表中的项目列表,我希望用户能够重新排列。这些项目通过标准Jinja2显示
{% for item in List %}
{{item}}
{%end for%}
.
所以如何允许用户重新排列对象的顺序,然后记录这些更改?
一个想法是为了得到 jquery sortable 允许重新安排,然后发送新的数据库的值(在提交时,或者重新安排)。
但是,我如何编写一个sqlalchemy语句来更新我的数据库中的相应行?什么是JavaScript和Python之间的作品,其中我识别DB中的哪一行更改?
解决方案
jQuery UI的sortable
具有toArray
消息 - 当调用可排序时,它会按照它们显示在DOM中的顺序返回元素的ID。这可能是处理事物的最简单方法:
<ul id="theSortableStuff">
{% for item in things_to_sort %}
<li id="item-{{ item.id }}">{{ item.name }}</li>
{% endfor %}
</ul>
<script>
var $sortables = $("#theSortableStuff").sortable({
stop: function() {
var sortedItems = $sortables.sortable("toArray");
// Update some form in the DOM or use AJAX to invoke a server-side update
}
});
</script>
. 不隶属于 StackOverflow