簡體   English   中英

JSONField 包含在 Django

[英]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...)

來自https://stackoverflow.com/a/4824810/1730167

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM