【发布时间】:2012-05-04 23:55:06
【问题描述】:
我有一个 Django ModelForm,它通过一个模型公开了一个与多对多关系相对应的多项选择字段,该模型将选择的order(文档列表)作为一个额外的属性。在前端,该字段显示为两个类似于 admin 中的多选字段,一个用于列出可用的选项,另一个用于保存选定的元素。
可以通过正确选择元素来保存表单,但它们始终按原始选择顺序排列,而不是选择。浏览器以正确的顺序发送选择,但form.cleaned_data['documents'] 中的顺序始终是原始选择顺序中的顺序。
如何使 MultipleChoiceField 尊重所选元素的顺序?
谢谢。
【问题讨论】:
-
如果多对多关系以正确的排序返回服务器(通过直通模型),那么为什么不使用类似于this question的方法来解决它
-
感谢您的评论。我想在服务器端创建关系时按选择顺序对元素进行排序。但是
cleaned_data['documents']并没有反映多选字段中的选择顺序。我可以使用request.GET.getlist('documents')中的 id 重新订购,但感觉很老套。
标签: django django-forms cleaned-data