2017-06-21 121 views
0

我的模型看起来像这样Django的RawSql查询做过滤器嵌套JSON

class Foo(): 
    payload = JSONField() 

有效载荷看起来像这样

[{ 
    "id": 12, 
    "names": [{"location": "New York"}, ]{"location": "Philly"}] 
}, 
{ 
    "id": 15, 
    "names": [{"location": "Paris"}, ]{"location": "Cannes"}] 
}] 

queryset = Foo.objects.all() 
queryset = queryset.filter(payload__names__contains=[{"name": "Paris"}]) #this works!! 
queryset = queryset.filter(payload__names__contains=[{"name": "Par"}]) #does not work 

第二条语句不工作 - 它返回0的结果。在第一种情况下,因为提供了全文,所以它起作用。在rawSql中做这件事的最好方法是什么? [我假设这是不可能在Django]

我彻底了解了这一点,但无法找到什么用like嵌套数组json字段。

+0

这个问题可能涉及: https://stackoverflow.com/questions/14349889/如何使用的-A-正则表达式到提取物的JSON场 –

回答