Как я могу использовать виджет FilteredSelectMultiple в пользовательской форме django?
Я пытаюсь использовать виджет Django FilteredSelectMultiple
в пользовательской форме. Этот виджет используется в админке Django для полей типа Permissions (например, http://127.0.0.1:8000/admin/auth/group/add/
), где есть два поля: одно для доступных вариантов, другое для выбранных вариантов.
Однако, когда я пытаюсь использовать его, он отображается только как обычное поле мультивыбора.
Вот мой текущий код:
Вид:
class SupervisorUpdateView(modal.BaseModalUpdateView):
permission_required = 'management.change_supervisor'
template_name = 'management/supervisors/update_supervisor.html'
model = models.Supervisor
form_class = forms.SupervisorForm
success_message = 'Supervisor updated'
Форма:
from django import forms
from django.contrib.admin.widgets import FilteredSelectMultiple
class SupervisorForm(BSModalModelForm):
class Meta:
model = models.Supervisor
fields = '__all__'
labels = {'supervisor': 'Supervisor', 'technicians': 'Technicians'}
widgets = {
'supervisor': forms.HiddenInput(),
'technicians': FilteredSelectMultiple('Technicians', is_stacked=False),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['technicians'].queryset = get_agparts_users()
Шаблон:
{% extends 'core/_modal_form.html' %}
{% block header %}Update Supervisor{% endblock header %}
{% block button %}
<button class="btn btn-primary submit-btn">Update</button>
{% endblock button %}
Несмотря на это, виджет отображается только как базовый выпадающий мультивыбор без пользовательского интерфейса с двумя ящиками. Что я упускаю? Как я могу правильно использовать FilteredSelectMultiple
вне админки Django?