Python Flaskでは、ユーザーがリスト項目とレコードをデータベースに再配置することを許可する方法
-
21-12-2019 - |
質問
フラスコSqlalchemy Bootsrapアプリを持っています。 私のテンプレートは、ユーザーが並べ替えることができるようにするテーブル内のアイテムのリストをレンダリングします。アイテムは標準のjinja2
を通して表示されます {% for item in List %}
{{item}}
{%end for%}
.
では、ユーザーがオブジェクトの順序を並べ替えることを許可してからそれらの変更を記録することを許可することができますか?
私が持っていた1つの考えは、 jQuery Soortable を再配置してから新しいものを送ることを許可することでした。マイデータベースへの値(送信時、または再配置されているように)。
しかし、データベースの適切な行を更新するためにSQLALCHEM文を書く方法は?DBのどの行を変更しているかを特定するJavaScriptとPythonの間のピースは何ですか?
解決
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