Django JSONField динамически содержит и ключевые поиски - PullRequest
0 голосов
/ 09 января 2019

Мне нужно отфильтровать объекты по паре ключ-значение, содержащейся в JSONField, со списком диктов, где ключ и значение являются полями модели.

Этот вопрос относится к Список диктов Django JSONField «содержит» фильтр внутри подзапроса

Этот работает отлично:

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
...