我用
django-filter
用于筛选
Article
奎丽斯特。
条款
有一个领域
locations
:
locations = models.ManyToManyField('locations.Location', related_name='articles')
I过滤器
Articles
按字段
位置
作为一个小部件,我使用
django-autocomplete-light
小装置
Select2Multiple
。
class ArticleFilter(django_filters.FilterSet):
from locations.models import Location
...
locations = django_filters.ModelMultipleChoiceFilter(method='locations_filter',queryset=Location.objects.all(),label='Lokality')
...
class Meta:
model = Article
fields = ['locations','title','price_lte','price_gte','price_currency'
]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# HERE I SPECIFY THE DAL WIDGET
self.form.fields['locations'].widget = autocomplete.Select2Multiple(url="locations:locations_autocomplete")
过滤效果很好,也可以自动完成:
当我单击submit时,它正确地显示了过滤结果,url querystring包含所有过滤属性,包括exmaple
locations=45
但它没有显示
location
具有
id=45
作为
位置
字段。
奇怪的是,如果我删除小部件,我可以看到原来,有一个初始值:
只是
Select2
不显示,位置值为
undefinfed
.
我在生的时候也用同样的方法
django.forms
而且工作正常。首字母也是。
你知道哪里会有问题吗?