我已经实现了ManyToMany关系,允许重复项目,如Way to allow for duplicate many-to-many entries in Python/Django。我还有一个表单,它使用ModelMultipleChoiceField来表示这种关系,为了验证来自ajax请求的数据,但是在表单is_valid()调用之后,ModelMultipleChoiceField中的任何重复项都被删除了。有没有办法保留重复的项目(我对表单的表示不感兴趣,因为我不在网页中使用它)或者我是否必须在表单验证后手动检查request.POST数据?
答案 0 :(得分:0)
ModelMultipleChoiceField
在其中使用了一个查询集,因此每个项目只出现一次(只要您不在数据库查询中使用join
,但它只是反正这个问题没有实现)。您可以尝试使用简单的MultipleChoiceField
并构造choices
手动复制必要的值。