No frasco python, como permitir que um usuário reorganize os itens da lista e registre no banco de dados

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

Pergunta

Eu tenho um aplicativo de bootsrap Flask sqlalchemy.Meu modelo renderiza uma lista de itens em uma tabela que eu gostaria que o usuário pudesse reorganizar.Os itens são exibidos através do jinja2 padrão

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

então, como posso permitir que o usuário reorganize a ordem dos objetos e registre essas alterações?

Uma ideia que tive foi conseguir jquery classificável para permitir a reorganização e, em seguida, enviar os novos valores para meu banco de dados (no momento do envio ou à medida que são reorganizados).

Mas, como escrevo uma instrução sqlalchemy para atualizar a linha apropriada em meu banco de dados?Qual é a parte entre javascript e python onde identifico qual linha do banco de dados deve ser alterada?

Foi útil?

Solução

UIs jQuery sortable tem um toArray mensagem - quando é chamado em um classificável ele retorna os IDs dos elementos na ordem em que aparecem no DOM.Esta é provavelmente a maneira mais simples de lidar com as coisas:

<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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top