我需要做类似的事情:
# 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':'已删除'}
相反,它仅返回具有
的记录admin_fields = {'status': 'deleted'}
~Q()是否与JSONField无关?
想法?
谢谢,
d
答案 0 :(得分:1)
您可以使用exclude()
方法执行您想要执行的操作。
MyModel.objects.filter(my_model_id=pk, children__isnull=True).exclude(admin_fields__contains={'status': 'deleted'})