Поле ModelMultipleChoiceField, возвращающее отсутствие значения

Как получить starred_by пользователей, введя имя в Django-admin, сейчас я не получаю ни одного

class DocumentForm(forms.ModelForm):
    model = Document
    starred_by = forms.ModelMultipleChoiceField(queryset=User.objects.all())

    class Meta:
        widgets = {

            'created_by': AutocompleteSelect(
                Document._meta.get_field('created_by').remote_field,
                admin.site,
                attrs={'data-dropdown-auto-width': 'true'}
            ),
            'organisation': AutocompleteSelect(
                Document._meta.get_field('created_by').remote_field,
                admin.site,
                attrs={'data-dropdown-auto-width': 'true'}
            ),
            'starred_by':AutocompleteSelectMultiple(
                Document._meta.get_field('starred_by').remote_field,
                admin.site,
                attrs={'data-dropdown-auto-width': 'true'}
            )
        }

Вы можете изменить свое starred_by на следующее:

starred_by = forms.ModelMultipleChoiceField(queryset=[user.username for user in User.objects.all()])

Вот как я решил эту проблему, я использовал встроенные поля поиска Django, которые используют Sleect2 под капотом

class OrganisationAdmin(admin.ModelAdmin):
        list_display = ('name','address')
        autocomplete_fields  = ['products']
        search_fields = ['name__iexact']
        # autocomplete_fields = ['']
    
    
    class ProductAdmin(admin.ModelAdmin):
        search_fields = ['name']
Вернуться на верх