我有这个存储在我的serializedDictionaryField
:
data = {
'k1': 'v1',
'k2': 'v2',
'k3': {'nested_k': 'nested_v'}
}
是否可以按嵌套字典的值进行过滤?就像是
Model.objects.filter(data__contains={'nested_k': 'nested_v'})
我有这个存储在我的serializedDictionaryField
:
data = {
'k1': 'v1',
'k2': 'v2',
'k3': {'nested_k': 'nested_v'}
}
是否可以按嵌套字典的值进行过滤?就像是
Model.objects.filter(data__contains={'nested_k': 'nested_v'})
HStoreField
只是将字符串映射到字符串并且不支持嵌套结构,您可以使用JSONField
它作为 Django 1.9+ 和 posgres 9.4+ 中的内置 Posgres 字段。
模型.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)
视图.py:
MyModel.objects.filter(data__k3__contains={'nested_k': 'nested_v'})