JSON领域的帖子就像

时间:2017-06-23 11:36:23

标签: python json django postgresql orm

是否可以使用不等于运算符的json字段过滤数据?机型:

from django.contrib.postgres.fields import JSONField
from django.db import models


class Dog(models.Model):
    name = models.CharField(max_length=200)
    data = JSONField()

其中数据行:

{"breed": "labrador0", "owner": {"name": "Bob0", "other_pets": [{"name": "Fishy"}]}}

然后我使用Dog.objects.filter(data__breed='labrador0')我收到数据,但是如果我想收到data.breed的所有行,例如'labrador%' - 我不知道怎么做。

我尝试Dog.objects.filter(data__breed__contains='labrador') - 没有结果。

在psql中我可以使用select * FROM polls_dog WHERE polls_dog.data ->> 'breed' like 'labrador4%';在哪里可以通过orm进行操作?

1 个答案:

答案 0 :(得分:2)

试试这个: -

Dog.objects.filter(data__breed__startswith='labrador')

This可能对您有所帮助。