1

我正在使用 Django 3.2.3 / Python 3.7.8 / PostgreSQL 12.3

模型.py

class Booking(models.Model):
    reference = models.CharField(max_length=15, unique=True)
    services = models.JSONField()

services结构是:

{
'1':{
    'id': 3,
    'name': 'Name 1'
    },
'2':{
    'id': 4,
    'name': 'Name 2
    },
'3':{
    'id': 3,
    'name': 'Name 3
    },
 ...
}

如何过滤Bookingwith servicesid 3

我试过Booking.objects.filter(services__contains=[{'id': 3}])但无法通过。

请帮忙。

4

1 回答 1

0

我想你应该试着is_null抬头看看。

而不是contains,如下:

Booking.objects.filter(services__3__isnull=False)

此外,我建议您在此处查看 django JSON 查询集文档

于 2021-12-10T07:30:02.440 回答