Wie ermöglicht man einem Benutzer in Python Flask, Listenelemente neu anzuordnen und in der Datenbank aufzuzeichnen?

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

Frage

Ich habe eine Flask-SQL-Alchemy-Bootsrap-App.Meine Vorlage stellt eine Liste von Elementen in einer Tabelle dar, die der Benutzer neu anordnen soll.Die Elemente werden über Standard-Jinja2 angezeigt

 {% for item in List %}
 {{item}}
  {%end for%}

Wie kann ich dem Benutzer also ermöglichen, die Reihenfolge der Objekte neu anzuordnen und diese Änderungen dann aufzuzeichnen?

Eine Idee, die ich hatte, war zu bekommen jquery sortierbar um eine Neuanordnung zu ermöglichen und dann die neuen Werte an meine Datenbank zu senden (entweder beim Absenden oder während sie neu angeordnet werden).

Aber wie schreibe ich eine SQLalchemy-Anweisung, um die entsprechende Zeile in meiner Datenbank zu aktualisieren?Was ist der Teil zwischen Javascript und Python, in dem ich identifiziere, welche Zeile in der Datenbank geändert werden soll?

War es hilfreich?

Lösung

jQuery-Benutzeroberflächen sortable hat ein toArray message – wenn es für ein Sortierobjekt aufgerufen wird, werden die IDs der Elemente in der Reihenfolge zurückgegeben, in der sie im DOM erscheinen.Dies ist wahrscheinlich die einfachste Art, Dinge zu handhaben:

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top