diff options
| author | Sergey Fedoseev <fedoseev.sergey@gmail.com> | 2017-07-30 22:00:00 +0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-07-31 15:34:07 -0400 |
| commit | 58da81a5a372a69f0bac801c412b57f3cce5f188 (patch) | |
| tree | 38964d5eb90f172feedb5cab3f4c6ac424b69e74 /tests | |
| parent | 6155bc4a51d44afa096c4c00766cbfb9ba9d660c (diff) | |
Fixed #27985 -- Fixed query for __exact=value when get_prep_value() converts value to None.
Also fixed crash of .filter(field__transform=None).
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/lookup/models.py | 3 | ||||
| -rw-r--r-- | tests/lookup/tests.py | 10 |
2 files changed, 12 insertions, 1 deletions
diff --git a/tests/lookup/models.py b/tests/lookup/models.py index 1c7ea799a6..d58d863885 100644 --- a/tests/lookup/models.py +++ b/tests/lookup/models.py @@ -44,7 +44,8 @@ class Tag(models.Model): class NulledTextField(models.TextField): - pass + def get_prep_value(self, value): + return None if value == '' else value @NulledTextField.register_lookup diff --git a/tests/lookup/tests.py b/tests/lookup/tests.py index 37e98f43e2..7b08c778df 100644 --- a/tests/lookup/tests.py +++ b/tests/lookup/tests.py @@ -846,3 +846,13 @@ class LookupTests(TestCase): self.assertFalse(Season.objects.filter(nulled_text_field__isnull=True)) self.assertTrue(Season.objects.filter(nulled_text_field__nulled__isnull=True)) self.assertTrue(Season.objects.filter(nulled_text_field__nulled__exact=None)) + self.assertTrue(Season.objects.filter(nulled_text_field__nulled=None)) + + def test_custom_field_none_rhs(self): + """ + __exact=value is transformed to __isnull=True if Field.get_prep_value() + converts value to None. + """ + season = Season.objects.create(year=2012, nulled_text_field=None) + self.assertTrue(Season.objects.filter(pk=season.pk, nulled_text_field__isnull=True)) + self.assertTrue(Season.objects.filter(pk=season.pk, nulled_text_field='')) |
