Вот структура JSONField - данные, которые у меня есть.
data : {
"animals" : [
"animal_id" : 2321,
"legs" : [
{
"name" : "front",
"measured_at" : 1596740795.453353
},
{
"name" : "back",
"measured_at": 1596740795.453353
}
]
]
}
Мне нужно найти все записи, которые соответствуют следующему условию
- leg-name = "front" ИЛИ
- измеренное значение больше, чем через 6 часов.
Я пробовал следующее
six_hrs_ago = (datetime.utcnow() - timedelta(hours = 6)).timestamp()
obj = Model.objects.filter(data__has_key='animals').
filter(Q(data__animals__legs__name="front") | Q(data__animals__legs__measured_at__gt = six_hrs_ago))))
Это не работает и не получает никаких записей .
Я также пытался просто отфильтровать записи с помощью leg - name - front, это тоже не работает
obj = Model.objects.filter(data__animals__contains=[{'legs': [{"name": "front"}]}])
Любые идеи приветствуются.