Django - Raw查询必须包含主键

who*_*rth 2 python sql django

这里有一个类似的问题 - 原始查询必须包含主键

但是,我正在运行旧版数据库,因此无法弄清楚主键的问题.

这是我的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""")
Run Code Online (Sandbox Code Playgroud)

在DB工作正常,但在Django我得到以下失败 -

原始查询必须包含主键

这个模型的主键是"jobdep_id",如下所示在models.py中 -

class Jobdep(models.Model):
    jobdep_id = models.IntegerField(primary_key=True)
Run Code Online (Sandbox Code Playgroud)

gre*_*reg 13

尝试将查询编写为:

"SELECT jobdep_id AS id ..."
Run Code Online (Sandbox Code Playgroud)

也许有帮助.