我们如何在django-hstore中查询嵌套字典?

时间:2016-03-14 12:18:34

标签: python django django-hstore

我已将其存储在我的serializedDictionaryField

data = {
    'k1': 'v1',
    'k2': 'v2',
    'k3': {'nested_k': 'nested_v'}
}

是否可以按嵌套字典的值进行过滤?

之类的东西
Model.objects.filter(data__contains={'nested_k': 'nested_v'})

1 个答案:

答案 0 :(得分:1)

HStoreField只是将字符串映射到字符串而不支持嵌套结构,你可以使用JSONField作为内置的Posgres Field在Django 1.9+和posgres 9.4 +。

<强> models.py:

from django.db import models
from django.contrib.postgres.fields.jsonb import JSONField
class MyModel(models.Model):
    ...
    data = JSONField(blank=True, null=True, default=dict)

<强> views.py:

MyModel.objects.filter(data__k3__contains={'nested_k': 'nested_v'})