Dans Python Flask, comment permettre à un utilisateur de réorganiser les éléments de la liste et de les enregistrer dans la base de données

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

Question

J'ai une application bootsrap flask sqlalchemy.Mon modèle affiche une liste d'éléments dans un tableau que j'aimerais que l'utilisateur puisse réorganiser.Les éléments sont affichés via Jinja2 standard

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

alors, comment puis-je permettre à l'utilisateur de réorganiser l'ordre des objets, puis d'enregistrer ces modifications ?

Une idée que j'avais était d'obtenir jquery triable pour permettre la réorganisation, puis envoyer les nouvelles valeurs à ma base de données (soit lors de la soumission, soit au fur et à mesure de leur réorganisation).

Mais comment puis-je écrire une instruction sqlalchemy pour mettre à jour la ligne appropriée dans ma base de données ?Quelle est la pièce entre javascript et python où j'identifie la ligne de la base de données à modifier ?

Était-ce utile?

La solution

interface utilisateur jQuery sortable a un toArray message - lorsqu'il est appelé sur un triable, il renvoie les identifiants des éléments dans l'ordre dans lequel ils apparaissent dans le DOM.C'est probablement la façon la plus simple de gérer les choses :

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top