Django JSONField 字符串包含
Posted
技术标签:
【中文标题】Django JSONField 字符串包含【英文标题】:Django JSONField string containment 【发布时间】:2017-03-05 03:19:50 【问题描述】:使用 Django 1.10 的 JSONField,我想通过 json 字段过滤查询集,该字段在包含子字符串(类似 sql)的特定键处具有值。
例如有一个 json 字段link
,带有url
键。我想要它的 url 包含的对象 .jpg
【问题讨论】:
没有 django 支持 afaik,你需要的原始查询 ***.com/questions/28718958/… 【参考方案1】:如果可以,我将为视图/模型创建一个“get_queryset”函数:
def get_queryset(self):
queryset = Entry.objects.all()
json = params.get('json', None)
if json is not None:
""" DO STUFF HERE TO STRIP THE JSON TO THE WANTED LINK """
q = queryset.filter(json__icontaints=".jpg")
return q
在此处阅读有关此主题的更多信息:https://docs.djangoproject.com/en/1.10/topics/db/queries/
【讨论】:
官方文档中指定,contains
在过滤json字段时有特殊含义,你使用icontains作为普通字段
这(json__contains
,json__icontains
)不适用于 JSON 字段。 code.djangoproject.com/ticket/26511以上是关于Django JSONField 字符串包含的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Django 将 postgres JSONField 值作为字符串返回?
如何在 DJANGO 中查询包含值列表的 JSONField
如何在具有 Jsonfield 的模型中发布 django rest 中的数据
我应该如何从 bradjasper 的 django-jsonfield 升级到 Django 的内置 jsonfield?