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。它工作得很好,唯一的问题是验证