我的模特看起来像这样
class Foo():
payload = JSONField()
Payload看起来像这样
[{
"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中不可能]
我彻底解决了这个问题但无法在嵌套数组json字段上找到用于执行like
的内容。
答案 0 :(得分:0)
这里无法完成 - https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/fields/
我的解决方案是实现类似这样的RawSql - jsonb query with nested objects in an array