我的模型中有一个events
JSONField,我想通过key上的值进行过滤。对象创建示例:
MyModel.objects.create(
name="test",
events=[
{"type": "created", "info": "xxx"},
{"type": "sent", "info": "abc"},
]
)
所以在events
中,我有一个具有相同键但不同值的事件列表。我想通过name
和info
值进行过滤,以实现自动完成功能-因此我需要通过info
中的字符串icontains进行过滤。
我计算出的是MyModel.objects.filter(Q(name__icontains='abc') | Q(events__info__0__icontains='abc'))
,但它只从列表中获取第一个事件-如果info
在第二个元素中匹配,那么它不会被放置在结果中。
可以用django orm来做吗?
我想要像MyModel.objects.filter(Q(name__icontains='abc') | Q(events__info__<all>__icontains='abc'))
这样的东西
1条答案
按热度按时间jjjwad0x1#
试试这个: