我使用的版本:
psycopg2==2.6.2
django=1.10.5
postgres=9.3
我想使用Django将JSON数据存储到数据库,但是我不能使用JSONField(),因为它只需要jsonb
类型,只存在于PostgreSQL> = 9.4。
我的Django模型如下:
class Inspection(models.Model):
data = models.TextField(null=False, blank=False)
在data
字段中,我想存储JSON数据。
数据如下:
记录1:
{
"url": "some_url",
"user": [
{
"id": "1",
"email": "myemail@hotmail.com",
"first_name": "My_First_Name",
"last_name": "My_Last_Name"
}
]
}
RECORD2 :
{
"url": "some_url",
"user": [
{
"id": "2",
"email": "myemail_2@hotmail.com",
"first_name": "My_First_Name_2",
"last_name": "My_Last_Name_2"
}
]
}
我可以过滤user id
吗?
答案 0 :(得分:1)
id = 1
Inspection.objects.filter(data__icontains='"id": "{}"'.format(id))
尝试使用上面的结果并在冒号(:)符号后使用空格。
答案 1 :(得分:0)
您可以实现自己的过滤器。看一下this文章。您可以直接编写SQL查询,并将其放在自定义过滤器中。