django autocomplete light - limiting choiches for foreign key fields with limit_choiches_to
我在django管理应用程序中使用django-autocomplete-light,但我无法使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | # autocomplete_light.py from django.db.models import Q import autocomplete_light from myapp.models import MyClass from otherapp.models import Deps class MyClassAutocomplete(autocomplete_light.AutocompleteModelBase): """ MyClass autocomplete widget class""" choiches = MyModels.objects.filter( Q(dpt__in=Deps.MAIN_DEPARTMENTS), Q(user__is_active=True) ) search_fields = ['^full_name', 'initials'] attrs = {'placeholder': 'Type a name'} autocomplete_light.register(MyClass, MyClassAutocomplete) # admin.py class SampleModelAdminForm(forms.ModelForm): class Meta: link_attrs = {'cols': 105, 'rows': 3} model = SampleModel def __init__(self, *args, **kwargs): super(SampleModelAdminForm, self).__init__( *args, **kwargs ) self.fields['my_fk'].widget = autocomplete_light.ChoiceWidget( 'MyClassAutocomplete' ) |
我还尝试覆盖AutocompleteModelBase子类中的
1 2 3 4 5 | def choices_for_request(self): return MyModels.objects.filter( Q(dpt__in=Deps.MAIN_DEPARTMENTS), Q(user__is_active=True) ) |
通过这种方式,我获得了已过滤的查询集,但是我松开了自动完成功能(对于我键入的每个单词,例如'Es',它开始向我显示A字母的choiches)
有人可以帮我吗?
谢谢
错别字:
1 | choiches = MyModels.objects.filter( |