私はautocomplete-light
django にありmodal form
ます。提案ボックスに動的フィルタリングを適用したかったので、 で使用choice_for_request()
しましたautocompletebasemodel
。ただし、 を使用しているためchoice_for_request()
、候補はnot according to the keyword typed
入力できるすべての値にすぎません。
これは私のフォームです:
class CamenuForm(autocomplete_light.ModelForm):
class Meta:
model = Ca_dispensaries_item
exclude = ('dispensary',)
autocomplete_fields = ('item',)
def __init__(self, *args, **kwargs):
self.category = kwargs.pop('category', None)
super(CamenuForm, self).__init__(*args, **kwargs)
self.fields['item'].queryset=Items.objects.filter(product_type__name=self.category)
これはレジストリとクラスです:
autocomplete_light.register(Items, AutoComplete )
クラス:
class AutoComplete(autocomplete_light.AutocompleteModelBase):
search_fields=('item_name',)
def choices_for_request(self):
category = self.request.session.get('category','')
if category:
choices = Items.objects.filter(product_type__name=category)
return self.order_choices(choices)[0:self.limit_choices]
changes_for_request
正しく機能させるため にどのような変更を加える必要があるか本当にわかりません