【发布时间】:2017-07-30 13:56:56
【问题描述】:
我有以下情况
class MyModel(models.Model):
my_field = JSONField(null=True, blank=True)
my_field 是一个 JSON 字段,结构如下:
{
"name": "some name"
"id": "some hash id"
}
我想执行以下操作:
MyModel.objects.values(my_field__name)
这将相当于 postgres 查询:select my_field->>'name' from my_app_my_model
但我似乎无法让 django 生成想要的查询。
我得到的错误是:
FieldError: Cannot resolve keyword 'name' into field. Join on 'my_field' not permitted.
这里的主要目标是提供一个名为fields 的字符串列表并运行以下命令:
MyModel.objects.values(*fields) 所以我认为原始 sql 解决方案不适合这里。自定义查找适用于 WHERE 子句,我不知道 SELECT 子句的任何等效项。
有没有想过如何做到这一点?
谢谢!
【问题讨论】:
标签: django postgresql