1
我需要做同样的事情:Django的JSONField和Q对象
# models.py
from django.contrib.postgres.fields import JSONField,
class MyModel():
***
**
admin_fields = JSONField(_('admin fields'), blank=True, null=True, help_text=admin_fields_help_text)
my_instances = MyModel.objects.filter((Q(my_model_id=pk) &
Q(children__isnull=True)) &
~Q(admin_fields__status__contains='deleted'))
或者
得到的所有记录与id=pk
和children__isnull=True
和JSONField admin_fields不得含有status==deleted
目前 admin_fields = {'status':'deleted'}
相反,它只返回r ecord有
admin_fields = {'status': 'deleted'}
Is〜Q()不能与JSONField一起工作吗?
想法?
感谢,
d
你试过'MyModel.objects.filter((Q(my_model_id = PK) Q(children__isnull = TRUE)))。exlude(admin_fields__status__contains = '删除')'?或者试试下面的MyModel.objects.filter(my_model_id = pk,children__isnull = True).exlude(admin_fields__status__contains ='deleted')' – Algorithmatic
谢谢,我没有想到绝对。它适用于一个小的变化:'MyModel.objects.filter(my_model_id = pk,children__isnull = True).exclude(admin_fields__contains = {'status':'deleted'})'。请添加它作为答案。 – Daviddd