モデルフォームの ModelMultipleChoiceFields の 1 つに django_autocomplete_light を実装しようとしています。チュートリアルとドキュメントに正確に従っていますが、フィールドに最初の数文字を入力すると、ドロップダウンが表示されません。
models.py:
class GameForm(forms.Form):
Players = forms.ModelMultipleChoiceField(queryset=User.objects.all(),widget=autocomplete_light.MultipleChoiceWidget('UserAutocomplete'))
autocomplete_light_registry.py:
class UserAutocomplete(autocomplete_light.AutocompleteModelBase):
search_fields=['username' ]
model = User
choices = User.objects.all()
autocomplete_light.register(UserAutocomplete,
search_fields=['username'],
attrs={
'placeholder': 'Who?',
'data-autocomplete-minimum-characters': 1,
},
widget_attrs={
'data-widget-maximum-values': 4,
'class': 'modern-style',
},
)
localhost/autocomplete/UserAutocomplete/ にアクセスすると、すべてのユーザーがスペースなしで 1 行で返されます。
user1user2user3
インストール手順に記載されている手順を既に実行しました。
- django-autocomplete-light>=2.0.0pre パッケージを pip でインストールします
- django.contrib.admin の前に「autocomplete_light」を settings.INSTALLED_APPS に追加します
- autocomplete_light.url を含める
- jquery.js のロード後に autocomplete_light/static.html をインクルード (>=1.7)