В колбе Python, как разрешить пользователю переупорядочивать элементы списка и записывать их в базу данных

StackOverflow https://stackoverflow.com//questions/24050292

Вопрос

У меня есть загрузочное приложение 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top