mirror of
https://github.com/django/django.git
synced 2025-09-01 16:27:45 +00:00
Fixed #25718 -- Made a JSONField lookup value of None match keys that have a null value.
This commit is contained in:
parent
4fe5d84666
commit
c979c0a2b8
9 changed files with 70 additions and 5 deletions
|
@ -4,6 +4,7 @@ from decimal import Decimal
|
|||
|
||||
from django.core import checks, exceptions, serializers
|
||||
from django.core.serializers.json import DjangoJSONEncoder
|
||||
from django.db.models import Q
|
||||
from django.forms import CharField, Form, widgets
|
||||
from django.test.utils import isolate_apps
|
||||
from django.utils.html import escape
|
||||
|
@ -177,6 +178,20 @@ class TestQuerying(PostgreSQLTestCase):
|
|||
[self.objs[7], self.objs[8]]
|
||||
)
|
||||
|
||||
def test_none_key(self):
|
||||
self.assertSequenceEqual(JSONModel.objects.filter(field__j=None), [self.objs[8]])
|
||||
|
||||
def test_none_key_exclude(self):
|
||||
obj = JSONModel.objects.create(field={'j': 1})
|
||||
self.assertSequenceEqual(JSONModel.objects.exclude(field__j=None), [obj])
|
||||
|
||||
def test_isnull_key_or_none(self):
|
||||
obj = JSONModel.objects.create(field={'a': None})
|
||||
self.assertSequenceEqual(
|
||||
JSONModel.objects.filter(Q(field__a__isnull=True) | Q(field__a=None)),
|
||||
self.objs[:7] + self.objs[9:] + [obj]
|
||||
)
|
||||
|
||||
def test_contains(self):
|
||||
self.assertSequenceEqual(
|
||||
JSONModel.objects.filter(field__contains={'a': 'b'}),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue