Несколько начальных для флажка отображается с использованием виджетов-твиков - PullRequest
1 голос
/ 14 мая 2019

Мне нужно руководство по выбору нескольких начальных значений для флажка, которые отображаются с использованием виджетов-твиков.

Мой код работает отлично, когда у меня есть одно начальное значение.Однако, если имеется более 1 начального значения, в поле будет отмечено только первое.

forms.py

class GroupForm(forms.ModelForm):
    class Meta:
        model = Group
        fields = ('name', 'category', 'pods')

    def __init__(self, group_id, category_id, *args, **kwargs):           
        super(GroupForm, self).__init__(*args, **kwargs)
        selected_group = Group.objects.get(id=group_id) 
        self.fields['name'].initial = selected_group.name
        self.fields['category'].initial = selected_group.category.id
        self.fields['pods'].queryset = Pod.objects.filter(category=selected_group.category.id)
        associated_pods = selected_group.pod.all()  
        self.fields['pods'].initial = [pod.id for pod in associated_pods]

views.py

def GroupUpdate(request,id):
    group = get_object_or_404(Group, pk=id)
    context = {}
    group_id = group.id
    category_id = request.GET.get('category')
    context['form'] = GroupForm(group_id, category_id)
    return render(request, 'catalog/group_detail.html', context)

HTML-файл

...
<div class="form-group">
    <label class="col-md-3 control-label">Group's Members</label>
    <div class="col-md-6">
       <div class="input-group btn-group">
           <span class="input-group-addon">
               <i class="fa fa-th-list"></i>
           </span>
           {% render_field form.pods|attr:"multiple:multiple"|attr:"data-plugin-multiselect" title="group_member" class="form-control" %}
       </div>
    </div>
</div>
...

Мне нужно, чтобы предварительно выбранные начальные значения флажка отображались динамически.В настоящее время self.fields ['pods']. Initial = [pod.id для pod в related_pods] установит только один флажок, хотя существует несколько связанных pods.

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Это решается добавлением виджета в форму

pods = forms.ModelChoiceField(
    queryset=Pod.objects.all(),
    required=False,
    empty_label=None,
    widget=forms.SelectMultiple,
)
0 голосов
/ 14 мая 2019

Я думаю, что добился определенного прогресса в своем расследовании. Этот jquery data-plugin-multiselect каким-то образом принимает только одно начальное значение. Возможно, кто-нибудь знает, как настроить этот jquery, чтобы иметь возможность принимать несколько начальных значений.

...