Commit 3c8fe5dd authored by Tim Graham's avatar Tim Graham
Browse files

Fixed #24751 -- Fixed HStoreField isnull lookup.

parent 81d4ce4a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ class KeyTransform(Transform):

    def as_sql(self, compiler, connection):
        lhs, params = compiler.compile(self.lhs)
        return "%s -> '%s'" % (lhs, self.key_name), params
        return "(%s -> '%s')" % (lhs, self.key_name), params


class KeyTransformFactory(object):
+2 −0
Original line number Diff line number Diff line
@@ -25,3 +25,5 @@ Bugfixes
  pointing to :class:`~django.db.models.UUIDField` and inheritance on models
  with ``UUIDField`` primary keys work correctly (:ticket:`24698`,
  :ticket:`24712`).

* Fixed ``isnull`` lookup for ``HStoreField`` (:ticket:`24751`).
+11 −0
Original line number Diff line number Diff line
@@ -114,6 +114,17 @@ class TestQuerying(PostgresSQLTestCase):
            self.objs[:3]
        )

    def test_key_isnull(self):
        obj = HStoreModel.objects.create(field={'a': None})
        self.assertSequenceEqual(
            HStoreModel.objects.filter(field__a__isnull=True),
            self.objs[2:5] + [obj]
        )
        self.assertSequenceEqual(
            HStoreModel.objects.filter(field__a__isnull=False),
            self.objs[:2]
        )


class TestSerialization(PostgresSQLTestCase):
    test_data = '[{"fields": {"field": "{\\"a\\": \\"b\\"}"}, "model": "postgres_tests.hstoremodel", "pk": null}]'