파이썬 플라스크에서 사용자가 목록 항목을 다시 정렬하고 데이터베이스에 레코드를 다시 정렬 할 수있는 방법

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

문제

Flask Sqlalchemy Bootsrap 앱이 있습니다. 내 템플릿은 사용자가 재정렬 할 수있는 테이블의 항목 목록을 렌더링합니다.표준 Jinja2

를 통해 항목이 표시됩니다.
 {% for item in List %}
 {{item}}
  {%end for%}
.

어떻게 사용자가 객체의 순서를 재정렬 한 다음 해당 변경 사항을 기록 할 수 있습니까?

하나의 아이디어는 jQuery Sortable 를 가져 와서 새로운 것을 보내고 새로 보내야합니다.내 데이터베이스에 대한 값 (제출시 또는 재 정렬시).

그러나 SqlAlchemy 문을 작성하여 데이터베이스에서 적절한 행을 업데이트하려면 어떻게해야합니까?DB에서 변경할 행을 식별하는 JavaScript와 Python 사이의 조각은 무엇입니까?

도움이 되었습니까?

해결책

jQuery UI의 sortabletoArray 메시지가 있습니다. 정렬 할 수있는 경우 폼에 나타나는 순서대로 요소의 ID를 반환합니다.이것은 아마도 일을 처리하는 가장 간단한 방법 일 것입니다 :

<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