mirror of https://github.com/django/django.git
Fixed #22907 -- Array contains must have same type.
This commit is contained in:
parent
9a2ab62977
commit
b65a2001e7
|
@ -159,7 +159,8 @@ class ArrayContainsLookup(Lookup):
|
||||||
lhs, lhs_params = self.process_lhs(qn, connection)
|
lhs, lhs_params = self.process_lhs(qn, connection)
|
||||||
rhs, rhs_params = self.process_rhs(qn, connection)
|
rhs, rhs_params = self.process_rhs(qn, connection)
|
||||||
params = lhs_params + rhs_params
|
params = lhs_params + rhs_params
|
||||||
return '%s @> %s' % (lhs, rhs), params
|
type_cast = self.lhs.source.db_type(connection)
|
||||||
|
return '%s @> %s::%s' % (lhs, rhs, type_cast), params
|
||||||
|
|
||||||
|
|
||||||
ArrayField.register_lookup(ArrayContainsLookup)
|
ArrayField.register_lookup(ArrayContainsLookup)
|
||||||
|
|
|
@ -118,6 +118,13 @@ class TestQuerying(TestCase):
|
||||||
self.objs[1:3]
|
self.objs[1:3]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_contains_charfield(self):
|
||||||
|
# Regression for #22907
|
||||||
|
self.assertSequenceEqual(
|
||||||
|
CharArrayModel.objects.filter(field__contains=['text']),
|
||||||
|
[]
|
||||||
|
)
|
||||||
|
|
||||||
def test_index(self):
|
def test_index(self):
|
||||||
self.assertSequenceEqual(
|
self.assertSequenceEqual(
|
||||||
NullableIntegerArrayModel.objects.filter(field__0=2),
|
NullableIntegerArrayModel.objects.filter(field__0=2),
|
||||||
|
|
Loading…
Reference in New Issue