Мне нужно отфильтровать объекты по паре ключ-значение, содержащейся в 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