В колбе Python, как разрешить пользователю переупорядочивать элементы списка и записывать их в базу данных
-
21-12-2019 - |
Вопрос
У меня есть загрузочное приложение flask sqlalchemy.Мой шаблон отображает список элементов в таблице, которые я хотел бы, чтобы пользователь мог изменить их порядок.Элементы отображаются через стандартный jinja2.
{% for item in List %}
{{item}}
{%end for%}
Итак, как я могу позволить пользователю изменять порядок объектов, а затем записывать эти изменения?
Одна из моих идей заключалась в том, чтобы получить jquery сортируемый чтобы разрешить переупорядочение, а затем отправить новые значения в мою базу данных (либо при отправке, либо по мере их переупорядочивания).
Но как мне написать оператор sqlalchemy для обновления соответствующей строки в моей базе данных?Какая часть между javascript и python, где я определяю, какую строку в базе данных следует изменить?
Решение
jQuery пользовательский интерфейс sortable
имеет toArray
сообщение — когда оно вызывается для сортируемого объекта, оно возвращает идентификаторы элементов в том порядке, в котором они появляются в DOM.Вероятно, это самый простой способ справиться с ситуацией:
<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>