【发布时间】:2013-07-23 00:08:45
【问题描述】:
我正在使用 django ORM 的 exact() 方法仅从一组模型中查询选定的字段以节省 RAM。由于对我正在使用的 ORM 管理器的一些限制(它不是默认的),我不能使用 defer() 或 only()。
以下代码可以正常运行:
q1 = Model.custom_manager.all().extra(select={'field1':'field1'})
# I only want one field from this model
但是,当我对 q1 查询集进行 jsonify 时,我得到了模型的每个字段。所以 extra() 一定没有工作,还是我做错了什么?
print SafeString(serializers.serialize('json', q1))
>>> '{ everything!!!!!}'
更具体地说,我使用的自定义管理器是 django-sphinx。例如 Model.search.query(...)。
谢谢。
【问题讨论】:
-
这里的
.select({'field1':'field1'})是什么? -
哦抱歉,我打错了,应该是 .extra(select={'field1':'field1'})
标签: python django orm django-models django-sphinx