[英]JSONField contains in Django
Hi im trying to know if a list contains another list, for this im using django + djongo, but i dont if i'm doing the query correctly嗨,我想知道一个列表是否包含另一个列表,为此我使用 django + djongo,但如果我正确执行查询,我不知道
My model is我的 model 是
class Item(models.Model):
name = models.CharField(max_length= 255)
_id = models.ObjectIdField(primary_key = True)
sku = models.JSONField(null= True)
providers= models.JSONField(null= True)
generic = models.JSONField(null= True)
is_validated = models.BooleanField(default = False)
tags = models.JSONField(null= True)
objects = models.DjongoManager()
My serializer我的序列化器
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = (
'__all__'
)
generic is a list of strings like: ["martillo", "s2","s3","s4"]
generic 是一个字符串列表,例如: ["martillo", "s2","s3","s4"]
I want to get all items which the generic list contains the given list, i'm trying the next query but it returns all the items in database我想获取通用列表包含给定列表的所有项目,我正在尝试下一个查询,但它返回数据库中的所有项目
items = models.Item.objects.filter(generic__contains = ['martillo'])
What i'm doing wrong?我做错了什么?
import operator
from django.db.models import Q
Item.objects.filter(reduce(operator.and_, (Q(generic__contains=x) for x in ["martillo", "s2","s3","s4"] )))
Which is the equivalent of相当于
Item.objects.filter(Q(generic__contains='martillo') & Q(generic__contains='s2') & Q(generic__contains='s3') etc...)
From https://stackoverflow.com/a/4824810/1730167来自https://stackoverflow.com/a/4824810/1730167
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.