【问题标题】:How to allow duplicate values in a ModelMultipleChoiceField如何在 ModelMultipleChoiceField 中允许重复值
【发布时间】:2012-05-27 01:41:12
【问题描述】:

我已经实现了一个多对多关系,它允许重复项目,如Way to allow for duplicate many-to-many entries in Python/Django。我还有一个表单,它使用 ModelMultipleChoiceField 来处理这种关系,以验证来自 ajax 请求的数据,但在表单 is_valid() 调用之后,ModelMultipleChoiceField 中的任何重复项都将被消除。有什么方法可以保留重复的项目(我对表单的呈现不感兴趣,因为我不在网页中使用它)还是我必须在表单验证后手动检查 request.POST 数据?

【问题讨论】:

    标签: django django-forms django-orm


    【解决方案1】:

    ModelMultipleChoiceField 在其中使用了一个查询集,因此每个项目只出现一次(只要您不在数据库查询中使用join,但无论如何它对这个问题都是不真实的)。您可以尝试使用简单的MultipleChoiceField 并手动构造choices 并复制必要的值。

    【讨论】:

    • 我考虑过使用MultipleChoiceField,但我不知道哪些值会被多次使用。即使我事先知道这些值,也必须有超过 5000 个选择,这听起来不是一个好主意,每次发出请求时都从数据库中获取它们。
    • 但是您在构建表单时已经发布了数据,因此您可以过滤所有对象并仅使用所需数据构建选择。有点愚蠢,但它应该工作:)
    猜你喜欢
    • 2020-06-11
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2014-04-08
    • 2018-01-08
    • 1970-01-01
    相关资源
    最近更新 更多