I have the following situation
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
子句的等效方法。你对如何完成这个任务有什么想法吗?
谢谢!