mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Refs #32096 -- Fixed ExpressionWrapper crash with JSONField key transforms.
Regression in 6789ded0a6
.
Thanks Simon Charette and Igor Jerosimić for the report.
This commit is contained in:
parent
7e1e198494
commit
bbd55e5863
3 changed files with 20 additions and 2 deletions
|
@ -10,7 +10,10 @@ from django.db import (
|
|||
DataError, IntegrityError, NotSupportedError, OperationalError, connection,
|
||||
models,
|
||||
)
|
||||
from django.db.models import Count, F, OuterRef, Q, Subquery, Transform, Value
|
||||
from django.db.models import (
|
||||
Count, ExpressionWrapper, F, IntegerField, OuterRef, Q, Subquery,
|
||||
Transform, Value,
|
||||
)
|
||||
from django.db.models.expressions import RawSQL
|
||||
from django.db.models.fields.json import (
|
||||
KeyTextTransform, KeyTransform, KeyTransformFactory,
|
||||
|
@ -405,6 +408,17 @@ class TestQuerying(TestCase):
|
|||
[self.objs[4]],
|
||||
)
|
||||
|
||||
def test_expression_wrapper_key_transform(self):
|
||||
self.assertSequenceEqual(
|
||||
NullableJSONModel.objects.annotate(
|
||||
expr=ExpressionWrapper(
|
||||
KeyTransform('c', 'value'),
|
||||
output_field=IntegerField(),
|
||||
),
|
||||
).filter(expr__isnull=False),
|
||||
self.objs[3:5],
|
||||
)
|
||||
|
||||
def test_has_key(self):
|
||||
self.assertSequenceEqual(
|
||||
NullableJSONModel.objects.filter(value__has_key='a'),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue