【问题标题】:Django Autocomplete Light widget Select2Multiple returns a string of a list instead of a list of valuesDjango Autocomplete Light 小部件 Select2Multiple 返回列表的字符串而不是值的列表
【发布时间】:2018-04-03 09:31:57
【问题描述】:

我正在使用 Django Autocomplete Light 小部件 Select2Multiple 作为标签的表单字段。在form.clean()中,对应的值是一串标签的pk列表,如下所示:

form.clean()['tags']: "['1','2']"

现在,我可以将其转换为整数列表并单独处理 pk,但我觉得应该有一种更明显的方法来处理这个问题。

forms.py 中的相关字段:

tags = CharField(label='Tags',
                 max_length=50,
                 required=False,
                 widget=autocomplete.Select2Multiple(url='tag-autocomplete')
       )

PS:我不能使用ModelSelect2Multiple,因为此表单用于尚未创建的对象。

【问题讨论】:

    标签: django jquery-select2 django-autocomplete-light


    【解决方案1】:

    forms.CharField 不是为处理值列表而设计的。由于您正在选择模型实例,因此您可以使用forms.ModelMultipleChoiceField

    tags = forms.ModelMultipleChoiceField(label='Tags',
                     queryset=Tag.objects.all(),
                     max_length=50,
                     required=False,
                     widget=autocomplete.Select2Multiple(url='tag-autocomplete')
           )
    

    【讨论】:

    • 感谢您的帮助!但现在我收到invalid choice 错误。有没有一种简单的方法来定义模型的选择?
    猜你喜欢
    • 2019-10-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2011-05-13
    • 2022-01-25
    • 2021-06-14
    • 2016-10-21
    相关资源
    最近更新 更多