mariadb Django JSONField过滤器在复杂的JSON文档与对象列表

inn6fuwd  于 4个月前  发布在  Go
关注(0)|答案(1)|浏览(82)

我使用Django 3.2和MariaDB。我有一个带有product_settings字段(类型为JSONField)的ProductModel。
通过查询集,我想检索类型为存款等于建筑的所有产品。
截断的product_settings值示例:

{
    "resources": [
        {
            "resource_config": {
                "linked_to": {
                    "params": {
                        "deposit": {
                            "type": "building"
                        }
                    }
                }
            }
        }
    ]
}

字符串
我正在尝试这个查询集,但它没有返回任何结果:

Product.objects.filter(product_settings__resources__resource_config__linked_to__params__deposit__type="building")


你有什么想法吗?
我已经读过this question,但我的是相当复杂,需要另一种解决方案。

kqhtkvqz

kqhtkvqz1#

最后,我找到了解决办法。
我必须像这样在resources键上使用**__contains**

Product.objects.filter(
    product_settings__resources__contains={
        "resource_config": {
            "linked_to": {
                "params": {
                    "deposit": {
                        "type": "building"
                    }
                }
            }
        }
    }
)

字符串

相关问题