Skip to content

Commit dc91f03

Browse files
committed
Add support for dependent m2m fields
1 parent 05556e1 commit dc91f03

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

django_select2/views.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,20 @@ def get_queryset(self):
5151
kwargs = {
5252
model_field_name: self.request.GET.get(form_field_name)
5353
for form_field_name, model_field_name in self.widget.dependent_fields.items()
54-
if form_field_name in self.request.GET
55-
and self.request.GET.get(form_field_name, "") != ""
5654
}
55+
kwargs.update(
56+
{
57+
f"{model_field_name}__in": filter(
58+
None, self.request.GET.get(f"{form_field_name}[]", "").split(",")
59+
)
60+
for form_field_name, model_field_name in self.widget.dependent_fields.items()
61+
}
62+
)
5763
return self.widget.filter_queryset(
58-
self.request, self.term, self.queryset, **kwargs
64+
self.request,
65+
self.term,
66+
self.queryset,
67+
**{k: v for k, v in kwargs.items() if v},
5968
)
6069

6170
def get_paginate_by(self, queryset):

tests/test_forms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ def test_empty_css_setting(self, settings):
200200
settings.SELECT2_CSS = ""
201201
sut = Select2Widget()
202202
result = sut.media.render()
203-
assert ".css" not in result
203+
assert "/select2.css" not in result
204204

205205

206206
class TestHeavySelect2Mixin(TestSelect2Mixin):

0 commit comments

Comments
 (0)