Предварительное заполнение выбранных значений в виджете Django Admin FilteredSelectmultiple

Я хочу иметь возможность установить некоторых выбранных по умолчанию пользователей в правой части виджета Django Admin FilteredSelectMultiple.

enter image description here

Это моя модель:

class UserAdminForm(forms.ModelForm):
    users = forms.ModelMultipleChoiceField(
        queryset=User.objects.all(),
        widget=FilteredSelectMultiple("Users",
                                      is_stacked=False))

    class Meta:
        model = User
        exclude = ()

Есть ли способ сделать это с помощью JavaScript, чтобы мне не приходилось вручную выбирать эти значения по умолчанию каждый раз, когда я создаю новый элемент?

Вы можете указать начальные данные, задав параметр initial=… [Django-doc] с:

class UserAdminForm(forms.ModelForm):
    users = forms.ModelMultipleChoiceField(
        queryset=User.objects.all(),
        initial=User.objects.filter(username__in=['johnsmith', 'janedoe']),
        widget=FilteredSelectMultiple('Users', is_stacked=False)
    )

    class Meta:
        model = User
        fields = '__all__'

Здесь мы устанавливаем в качестве начальных выбранных пользователей johnsmith и janedoe. Вы, конечно, можете выбрать других пользователей.

Вернуться на верх