这里有一个类似的问题- 原始查询必须包含主键
但是,我正在使用旧版数据库,因此无法弄清主键是什么问题。
这是我的RAW查询-
trg = Trgjob.objects.db_manager('AdmiralDEV').raw("""
SELECT jobdep_id, jm.jobmst_id, jobdep_type, (jm1.jobmst_prntname + '\' + jm1.jobmst_name) AS jobdep_jobmst,
jobdep_operator, jobdep_status, jobdep_joblogic, jobdep_ingroup, jobdep_dateoffset, jobdep_instoffset,
jobdep_canignore, jobdep_filename, jobdep_filetype, jobdep_fileextent, nodmst_id, varmst_id, jobdep_value
FROM Jobdep jd
INNER JOIN Jobmst jm ON jd.jobmst_id = jm.jobmst_id
INNER JOIN Jobmst jm1 ON jd.jobdep_jobmst = jm1.jobmst_id
WHERE jm.jobmst_id = 9878""")
在数据库上工作正常,但是在django中,我遇到以下失败-
原始查询必须包含主键
该模型的主键是“ jobdep_id”,如在models.py中所示-
class Jobdep(models.Model):
jobdep_id = models.IntegerField(primary_key=True)
尝试将查询写为:
"SELECT jobdep_id AS id ..."
也许有帮助。
它帮助我在正确的地方看。现在提交我的答案:)