我在django_filters.ModelChoiceFilter中使用Django-filter。我面临的问题是,如果我在郊区表中有大量数据,网站速度会非常慢。
class PDetailFilter(django_filters.FilterSet):
class Meta:
model = PDetail
fields = {
# 'code': ['icontains'],
# 'bu_name': ['icontains'],
# 'bc_effect_date' : ['year__gt', 'year__lt', ],
}
# Filter by Suburb
suburb = django_filters.ModelChoiceFilter(label="Suburb", queryset=Suburb.objects.all())发布于 2019-01-30 16:13:28
最终,我找到了答案。我正在使用django-autocomplete-light。你可以在这里查看教程:https://django-autocomplete-light.readthedocs.io/en/master/tutorial.html
以下是View.py文件中的一些源代码:
class SuburbAutocomplete(autocomplete.Select2ListView):
def get_list(self):
# Don't forget to filter out results depending on the visitor !
# if not self.request.user.is_authenticated():
# return Suburb.objects.none()
qs = Suburb.objects.all()
if self.q:
qs = qs.filter(suburb__istartswith=self.q)
return qs在Filters.py中
# Filter by Suburb
suburb = django_filters.ModelChoiceFilter(
label="Suburb",
queryset=Suburb.objects.all(),
widget=autocomplete.ModelSelect2(
url='backend:suburb-autocomplete',
attrs={
# Set some placeholder
'data-placeholder': 'Suburb ...',
# Only trigger autocompletion after 2 characters have been typed
'data-minimum-input-length': 2,
'style': 'height:34px !important;'
},
)
)https://stackoverflow.com/questions/54343250
复制相似问题