Python 允许在Django ChoiceField中进行动态选择

Python 允许在Django ChoiceField中进行动态选择,python,django,jquery-select2,Python,Django,Jquery Select2,我在我的应用程序中使用创建标签,如选择下拉列表。用户可以选择预定义标记的数量或创建新标记 有关表格类别部分: all_tags = Tag.objects.values_list('id', 'word') # Tags tags = forms.ChoiceField( choices=all_tags, widget=forms.Select( attrs={ 'class': 'q

我在我的应用程序中使用创建标签,如选择下拉列表。用户可以选择预定义标记的数量或创建新标记

有关表格类别部分:

   all_tags = Tag.objects.values_list('id', 'word')

   # Tags
    tags = forms.ChoiceField(
        choices=all_tags,
        widget=forms.Select(
            attrs={
                'class': 'question-tags',
                'multiple': 'multiple',
            }
        )
    )
问题是,
Django
在验证时不允许自定义标记(选项)。我得到的错误如下:
选择一个有效的选项。香蕉不是可用的选择之一。

有什么办法吗


谢谢

我会将choicefield更改为charfield,并根据特定条件使用clean方法过滤不需要的选择。简单地用select小部件将其更改为char字段就可以了,因为Select2无论如何都是javascript

class Myform(forms.Form):
    tags = forms.CharField(
    max_length=254,
    widget=forms.Select(
        choices=tags,  # here we set choices as part of the select widget
        attrs={
            'class': 'question-tags',
            'multiple': 'multiple',
            }
        )
    )
    def clean_tags(self):
        tags = self.cleaned_data['tags']
        # more tag cleaning logic here
        return tags

在创建标记时(提交前)发送ajax请求以保存新标记?您是否使用了
django-select2
(或使用select2的众多django应用程序之一?@skndstry不确定这是否是最好的way@KevinBrown我正在使用PlangSelect2和django。它工作得很好,唯一的问题是验证