Django -Выбрать 2 Heavy Widget - PullRequest
       0

Django -Выбрать 2 Heavy Widget

0 голосов
/ 23 апреля 2020

Я пытался реализовать 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'})

, когда я проверил в режиме отладки. Я обнаружил, что варианты пустые ... screenshot of debug

Я благодарен за быструю помощь ... если возможно, приведите один полный пример, который объясняет, как определяется форма и вид для Ajax функция ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...