mirror of
https://github.com/Hopiu/django-select2.git
synced 2026-04-09 00:00:59 +00:00
Fixed filter_queryset bug
The reduce statement coundn't handle multiple lookup strings.
This commit is contained in:
parent
4d484163c2
commit
485ea191cb
4 changed files with 10 additions and 4 deletions
|
|
@ -9,4 +9,4 @@ The app includes Select2 driven Django Widgets and Form Fields.
|
|||
|
||||
"""
|
||||
|
||||
__version__ = "5.0.2"
|
||||
__version__ = "5.0.3"
|
||||
|
|
|
|||
|
|
@ -311,7 +311,7 @@ class ModelSelect2Mixin(object):
|
|||
"""
|
||||
qs = self.get_queryset()
|
||||
search_fields = self.get_search_fields()
|
||||
select = reduce(lambda x, y: Q(**{x: term}) | Q(**{y: term}), search_fields,
|
||||
select = reduce(lambda x, y: x | Q(**{y: term}), search_fields,
|
||||
Q(**{search_fields.pop(): term}))
|
||||
return qs.filter(select).distinct()
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@ from django_select2.forms import (
|
|||
Select2Widget
|
||||
)
|
||||
from tests.testapp import forms
|
||||
from tests.testapp.forms import NUMBER_CHOICES, HeavySelect2MultipleWidgetForm
|
||||
from tests.testapp.forms import NUMBER_CHOICES, HeavySelect2MultipleWidgetForm, \
|
||||
TitleModelSelect2Widget
|
||||
from tests.testapp.models import Genre
|
||||
|
||||
|
||||
|
|
@ -148,6 +149,10 @@ class TestModelSelect2Mixin(TestHeavySelect2Mixin):
|
|||
assert isinstance(widget.get_search_fields(), collections.Iterable)
|
||||
assert all(isinstance(x, text_type) for x in widget.get_search_fields())
|
||||
|
||||
def test_filter_queryset(self, genres):
|
||||
widget = TitleModelSelect2Widget(queryset=Genre.objects.all())
|
||||
assert widget.filter_queryset(genres[0].title[:3]).exists()
|
||||
|
||||
def test_model_kwarg(self):
|
||||
widget = ModelSelect2Widget(model=Genre, search_fields=['title__icontains'])
|
||||
genre = Genre.objects.last()
|
||||
|
|
|
|||
|
|
@ -14,7 +14,8 @@ from tests.testapp.models import Album
|
|||
|
||||
class TitleSearchFieldMixin(object):
|
||||
search_fields = [
|
||||
'title__icontains'
|
||||
'title__icontains',
|
||||
'pk__startswith'
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue