我需要通过JSONField中包含的键-值对来过滤对象,这些字典中包含键和值是模型字段的字典列表。
此问题与Django JSONField list of dicts "contains" filter inside Subquery
有关这很完美:
EntityObject.objects.filter(
data__list_of_dicts__contains=[{'static_key': 'static_value'}]
)
但具有动态值:
EntityObject.objects.filter(
data__list_of_dicts__contains=[{F('field1'): F('field2')}]
)
它会导致错误:
TypeError: keys must be a string
具有静态键和动态值:
EntityObject.objects.filter(
data__list_of_dicts__contains=[{'static_key': F('field2')}]
)
另一个错误:
TypeError: F(field2) is not JSON serializable