Django JSONField动态包含和关键查找

时间:2019-01-08 22:11:34

标签: django postgresql django-orm

我需要通过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

0 个答案:

没有答案