【发布时间】:2012-03-13 04:37:45
【问题描述】:
我试图对模型进行自定义原始查询,但出现此错误:
DatabaseError: error de sintaxis en o cerca de «E'positions_statusrecord'» 第 1 行:选择 id FROM E'positions_statusrecord' WHERE "type"=E'Leav...
这是我尝试使用的原始查询(它是管理器方法):
def get_status_ids(self, model):
"""
This query returns the latest statuses ids for each entry
of "model" in StatusRecord.
"""
db_table = self.model._meta.db_table
model_type = model.get_status_type()
raw_query = (
"SELECT id "
"FROM %s "
"WHERE \"type\"=%s AND "
"(identifier,date_time) IN "
"( "
"SELECT identifier, Max(date_time) "
"FROM %s "
"WHERE \"type\"=%s "
"GROUP BY identifier"
")"
)
params = (db_table, model_type, db_table, model_type, )
return self.raw(raw_query, params)
我尝试了一个更简单的查询(只是一个SELECT ... FROM ..)并且遇到了同样的问题。似乎原始查询无法使用参数完成 FROM 部分。
我说的对吗?还是我犯了一个错误,我没有找到它?
我正在使用 postgreSQL 8.4.10、django 1.3 和 python 2.6。
我搜索了有关原始查询参数的信息以查看是否有一些禁止的格式选项,但我没有找到任何对我有帮助的信息。
有谁知道是什么导致了这个错误?
【问题讨论】: