[英]JSONField contains in Django
嗨,我想知道一個列表是否包含另一個列表,為此我使用 django + djongo,但如果我正確執行查詢,我不知道
我的 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()
我的序列化器
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = (
'__all__'
)
generic 是一個字符串列表,例如: ["martillo", "s2","s3","s4"]
我想獲取通用列表包含給定列表的所有項目,我正在嘗試下一個查詢,但它返回數據庫中的所有項目
items = models.Item.objects.filter(generic__contains = ['martillo'])
我做錯了什么?
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"] )))
相當於
Item.objects.filter(Q(generic__contains='martillo') & Q(generic__contains='s2') & Q(generic__contains='s3') etc...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.