我第一次尝试实现 Django-select2....我参考了他们的文档和一些堆栈溢出解决方案来实现它....我设法让 ajax 功能正常工作,我也可以选择多个选择...但是,当我提交并验证表单时,我收到错误,例如 ->“选择一个有效的选择。123456 不是可用的选择之一。 ”
我不明白我做错了什么......
这是我的表格。
class MyCustReqForm(forms.ModelForm):
initial_customer = forms.MultipleChoiceField(
widget=HeavySelect2MultipleWidget(data_view='customer_ajax',
attrs={'data-minimum-input-length': 4, 'delay':200},
model=Customer),
)
end_customer = forms.MultipleChoiceField(
widget=HeavySelect2MultipleWidget(data_view='customer_ajax',
attrs={'data-minimum-input-length': 4, 'delay':200},
model=Customer),
)
class Meta:
model = Workflow_Customer
fields = [ 'initial_customer', 'end_customer' ]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['initial_customer'].widget.attrs.update({'style': 'width:100%', 'data-placeholder': 'Select Customer'})
self.fields['end_customer'].widget.attrs.update({'style':'width:100%', 'data-placeholder':'Select end customer'})
和 customer_ajax 视图调用下面的函数......
def customer_select2(request):
term = request.GET.get("term", None)
if term:
res = list(Customer.objects.filter(Q(customer_number__contains=term) | Q(customer_name__contains=term)).values('id', 'customer_number', 'customer_name'))[:10]
if res:
result = [{'id': value['id'], 'text': value['customer_number'] + ' ' + value['customer_name'] } for index, value in enumerate(res)]
return JsonResponse({'err': 'nil', 'results': result}, safe=False)
return JsonResponse(data={'success': False, 'errors': 'No mathing items found'})
感谢您的快速帮助...如果可能,请提供一个完整的示例来解释表单如何定义和视图用于 Ajax 功能...