Фильтр по json-файлам с неизвестными ключами в Django ORM
В модели Django есть модель с JSON-полем:
class MyClass(models.Model):
is_info = models.BooleanField()
info = models.JSONField()
Данные внутри таблицы имеют вид:
is_info | info |
---|---|
false | |
true | {'key123':{'a':'1', 'b':'2', 'search_key':'text'},'key456':{'a':'1', 'b':'2', 'search_key':'another_value'}} |
А мне нужно как-то фильтровать набор запросов, чтобы получить набор строк, в которых составной ключ 'search_key'='text'
и не включать в результат значения из поля 'info', где 'search_key' имеет другие значения.
Мои ключи поля 'info' (key123, key456 и т.д.) всегда разные и я не знаю точного значения.
Пожалуйста, помогите мне!!!)
Я пробовал:
q = queryset.filter(info__icontains='text')
но он возвращает мне всю информацию о полях:
{'key123':{'a':'1', 'b':'2', 'search_key':'text'},'key456':{'a':'1', 'b':'2', 'search_key':'another_value'}}
когда мне нужно получать только:
{'key123':{'a':'1', 'b':'2', 'search_key':'text'}}