在django中发送ul列表

时间:2016-07-19 07:33:01

标签: django django-forms

在模板中,我有两个连接列表,其中一个最初是空的。用户必须从左侧列表中选择最多三个选项,将它们添加到右侧列表中,对它们进行排序(根据他/她的优先级)然后将其发回。

看起来像:

<ul id="sortable1" class="connectedSortable">
  <li value="1">Item A</li>
  <li value="2">Item B</li>
  <li value="3">Item C</li>
  <li value="4">Item D</li>
  <li value="5">Item E</li>
  <li value="6">Item F</li>
  <li value="7">Item G</li>
</ul>
</div>

<ul id="sortable2" class="connectedSortable">
 <!--here goes the initially empty list-->
</ul>

和{%scripts%}阻止:

<script>
    $( function() {
    $( "#sortable1, #sortable2" ).sortable({
      connectWith: ".connectedSortable"
    }).disableSelection();
    } );
 </script>
models.py中的

我有一个存储所选信息的字段:

preferences = CommaSeparatedIntegerField()

问题是如何将更新的ul(sortable2)中的信息发送回数据库?我可以在页面中添加一个隐藏字段preferences,然后使用jQuery填充它,但它似乎是一个丑陋的解决方案。什么是正确的?

1 个答案:

答案 0 :(得分:0)

如果要将更新的ul(sortable2)发布回数据库,那么可能的解决方案之一就是 ul(sortable2)应该在表单中您可以使用POST方法提交其数据。

现在当任何 li元素从ul(sortable1)移动到ul(sortable2)时,输入类型元素插入< / strong>在ul(sortable2)中与list元素一起,输入的“value”属性必须与ul中的与li元素相同 (sortable1)是。此输入元素的类型也将是隐藏

现在,当您使用提交按钮提交此表单时,您将在视图中返回所有数据,因此可以相应地更改数据库。