From bb90be77b77aa6ec51679b1d1bc37bfa8a0137c8 Mon Sep 17 00:00:00 2001 From: Johannes Hoppe Date: Mon, 30 Nov 2015 13:12:47 +0100 Subject: [PATCH] Fixed #231 -- Avoid fetching entire queryset from db Patched ciritcal memory leak in ModelSelect2 widgets. Boolean evaluation of queryset makes django fetch all elements. Thanks to @magicjohnson for discovering this issue --- CHANGELOG.md | 3 +++ django_select2/__init__.py | 2 +- django_select2/forms.py | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aef9700..e6550dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ Changelog Summary ================= +### v5.4.1 +* Fixed memory leak in `ModelSelect2Mixin` and subclasses + ### v5.4.0 * Added `Select2TagWidget` a light widget with tagging support diff --git a/django_select2/__init__.py b/django_select2/__init__.py index 9d31a2c..f742169 100644 --- a/django_select2/__init__.py +++ b/django_select2/__init__.py @@ -9,4 +9,4 @@ The app includes Select2 driven Django Widgets and Form Fields. """ -__version__ = "5.4.0" +__version__ = "5.4.1" diff --git a/django_select2/forms.py b/django_select2/forms.py index 7d595d5..d5c482f 100644 --- a/django_select2/forms.py +++ b/django_select2/forms.py @@ -351,7 +351,7 @@ class ModelSelect2Mixin(object): :return: Filtered queryset :rtype: :class:`.django.db.models.QuerySet` """ - if not queryset: + if queryset is None: queryset = self.get_queryset() search_fields = self.get_search_fields() select = Q()