Поле 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']