Lista de dicionários JSONField do filtro Django
Eu executo o Django 1.9 com o novo JSONField e tenho o seguinte modelo de teste:
class Test(TimeStampedModel):
actions = JSONField()
Digamos que a ação JSONField seja assim:
[
{
"fixed_key_1": "foo1",
"fixed_key_2": {
"random_key_1": "bar1",
"random_key_2": "bar2",
}
},
{
"fixed_key_1": "foo2",
"fixed_key_2": {
"random_key_3": "bar2",
"random_key_4": "bar3",
}
}
]
Quero poder filtrar as teclas foo1 e foo2 para cada item da lista. Quando eu faço :
>>> Test.objects.filter(actions__1__fixed_key_1="foo2")
O teste está no conjunto de consultas. Mas quando eu faço :
>>> Test.objects.filter(actions__0__fixed_key_1="foo2")
Não é, o que faz sentido. Eu quero fazer algo como:
>>> Test.objects.filter(actions__values__fixed_key_1="foo2")
Ou
>>> Test.objects.filter(actions__values__fixed_key_2__values__contains="bar3")
E tenha o teste no conjunto de consultas.
Alguma idéia se isso pode ser feito e como?