【发布时间】:2018-03-02 09:14:22
【问题描述】:
我用的是django postgres JSONfield,模型结构如下
from django.contrib.postgres.fields import JSONField
class JsonAnswer(models.Model):
name = models.CharField(max_length=255)
data = JSONField(default={})
Json 字段中的数据如下
{
"owner":{
"name":"Bob",
"other_pets":[
{
"name":"fishy"
}
]
},
"bread":"lab"
}
而我的过滤查询是这样的
JsonAnswer.objects.filter(data__owner__name="Bob")
这是抛出错误
FieldError: Unsupported lookup 'owner' for JSONField or join on the field not permitted.
请说明如何过滤json字段数据
【问题讨论】:
-
可能与您的错误无关,但请确保在为 JSONField 设置默认值时,使用
dict或dict()而不是{},因为它“创建了一个可变的默认值,在JSONField 的所有实例”.. 见 docs
标签: python-2.7 django-1.9 django-jsonfield