Django Filter JSONField Liste der Wörter
Ich starte Django 1.9 mit dem neuen JSONField und habe das folgende Testmodell:
class Test(TimeStampedModel):
actions = JSONField()
Nehmen wir an, die Aktion JSONField sieht folgendermaßen aus:
[
{
"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",
}
}
]
Ich möchte in der Lage sein, die Tasten foo1 und foo2 für jedes Element der Liste zu filtern. Wenn ich mache:
>>> Test.objects.filter(actions__1__fixed_key_1="foo2")
Der Test befindet sich im Abfragesatz. Aber wenn ich das mache
>>> Test.objects.filter(actions__0__fixed_key_1="foo2")
Es ist nicht, was Sinn macht. Ich möchte etwas machen wie:
>>> Test.objects.filter(actions__values__fixed_key_1="foo2")
Ode
>>> Test.objects.filter(actions__values__fixed_key_2__values__contains="bar3")
Und habe den Test im Queryset.
Jede Idee, ob und wie dies möglich ist?