﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
28872	JSONField __in operator breaks when given a values_list()	Jerome Leclanche	JaeHyuckSa	"Prerequisites

1. Create a model MyModel1 with the field `resource = JSONField()`.
2. Create another model MyModel2 with a field `id = CharField(max_length=255)`

Reproduce by doing `MyModel1.objects.filter(resource__foo__id__in=MyModel2.objects.all().values_list(""id""))`

Expected result: Should look at MyModel1 for objects with `resource` matching `{""foo"": {""id"": <id>}}`.

Actual result:
{{{
ERROR:  operator does not exist: jsonb = character varying
LINE 1: ...AND (""resource"" #> '{foo,id}') IN (SELECT...
}}}
The actual issue is that when passing a `values_list()` to `__in`, the values list is not cast to jsonb (unlike when passing a text type). In the resulting sql, we can see `IN (SELECT U0.""id"" AS Col1 FROM mymodel2 U0 ...)`. Wrapping `to_json(U0.""id"")` solves the issue."	Bug	assigned	Database layer (models, ORM)	dev	Normal			VCAMP	Accepted	1	0	0	0	0	0
