Skip to content

Commit 8789d38

Browse files
committed
Fix HeavySelect class attributes
1 parent 8c2982e commit 8789d38

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

django_select2/forms.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,8 @@ class HeavySelect2Mixin:
227227
"""Mixin that adds select2's AJAX options and registers itself on Django's cache."""
228228

229229
dependent_fields = {}
230+
data_view = None
231+
data_url = None
230232

231233
def __init__(self, attrs=None, choices=(), **kwargs):
232234
"""
@@ -247,8 +249,8 @@ def __init__(self, attrs=None, choices=(), **kwargs):
247249

248250
self.uuid = str(uuid.uuid4())
249251
self.field_id = signing.dumps(self.uuid)
250-
self.data_view = kwargs.pop("data_view", None)
251-
self.data_url = kwargs.pop("data_url", None)
252+
self.data_view = kwargs.pop("data_view", self.data_view)
253+
self.data_url = kwargs.pop("data_url", self.data_url)
252254

253255
dependent_fields = kwargs.pop("dependent_fields", None)
254256
if dependent_fields is not None:

tests/testapp/forms.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ def label_from_instance(self, obj):
5151
return force_str(obj.title).upper()
5252

5353

54+
class ArtistDataViewWidget(HeavySelect2Widget):
55+
data_view = "heavy_data_1"
56+
57+
58+
class PrimaryGenreDataUrlWidget(HeavySelect2Widget):
59+
data_url = "/heavy_data_2/"
60+
61+
5462
class AlbumSelect2WidgetForm(forms.ModelForm):
5563
class Meta:
5664
model = models.Album
@@ -144,10 +152,10 @@ class Select2WidgetForm(forms.Form):
144152

145153
class HeavySelect2WidgetForm(forms.Form):
146154
artist = forms.ChoiceField(
147-
widget=HeavySelect2Widget(data_view="heavy_data_1"), choices=NUMBER_CHOICES
155+
widget=ArtistDataViewWidget(), choices=NUMBER_CHOICES
148156
)
149157
primary_genre = forms.ChoiceField(
150-
widget=HeavySelect2Widget(data_view="heavy_data_2"),
158+
widget=PrimaryGenreDataUrlWidget(),
151159
required=False,
152160
choices=NUMBER_CHOICES,
153161
)

0 commit comments

Comments
 (0)