温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - Django
django python sql

python - Django的

发布于 2020-03-27 11:11:55

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

但是,我正在使用旧版数据库,因此无法弄清主键是什么问题。

这是我的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)

查看更多

查看更多

提问者
whoisearth
被浏览
174
greg 2014-01-04 01:55

尝试将查询写为:

"SELECT jobdep_id AS id ..."

也许有帮助。