我正在尝试在Django列表视图中创建自定义过滤器和搜索,该视图将使用存储在JSONField中的值,就像它们被定义为常规模型领域。
我认为我需要使用自定义get_queryset()
函数定义模型管理器,但我不确定如何“脱水”json数据并将其作为查询集的一部分返回。
到目前为止,其他一些方法都失败了:我可以在自定义ListView
中向上下文字典插入值,但无法查询该上下文。还尝试在admin.py中定义属性并在models.py中包装一些@property定义;这里遇到同样的问题,因为无法查询属性。
有什么建议吗?
答案 0 :(得分:0)
你不能这样做(无论如何都是在正常的RDBMS中)。
过滤器由数据库评估,数据库对JSON中的字段一无所知:它只是一个不透明的blob。如果您需要搜索这些字段,则需要将它们存储为适当的数据库可访问数据。
答案 1 :(得分:0)
你可以做到
看看如何在Django文档中query JSONField。