Select2 передача только одного выбора в форму в Django

#django #jquery-select2 #jquery-select2-4

#django #jquery-select2 #jquery-select2-4

Вопрос:

Я использую Select2 для множественного выбора тегов. Я использую Taggit для тегов. Проблема в том, что если пользователь выбирает более одного тега, то в форму передается только один.

Мой выбранный HTML:

 <select class="custom-select js-example-basic-multiple form-control " id="select-tags" name="usertags" multiple="multiple">
                    {% for tag in userTags %}
                    <option value="{{ tag }}" data-id="{{ tag.color }}" class="options">{{ tag }}</option>
                    {% endfor %}
                </select>
  

Моя форма:

 class FileUploadForm(forms.ModelForm):
    class Meta:
        model = Uploaded
        fields = (
            'name',
            'file',
            'usertags',
        )
  

Views.py

 if request.method == 'POST':
    form = FileUploadForm(request.POST, request.FILES)
    if form.is_valid():
        form.instance.user = request.user
        user = request.user
        form.save()
  

Ответ №1:

Ваши параметры должны иметь уникальные идентификаторы.

 <option value="yyxx" id="xx">option name</option>
  

Комментарии:

1. Я добавил идентификатор, но он по-прежнему не работает. Кроме того, select2, похоже, генерирует уникальный идентификатор для каждого параметра сам по себе.

2. как вы исправили это @BoostedAnimal ? Я не знаю, как это работает с формами, но если вы используете request.POST.getlist('usertags') , вы можете увидеть результат, опубликованный в виде списка