首页 > 解决方案 > django.db.models.query_utils.InvalidQuery:原始查询必须包含主键

问题描述

我已经为 id(primary key) 提供了自定义名称并用作字符串,例如

custId=models.CharField(primary_key=True,max_length=10)

我正在使用原始查询来执行 SQL。但是 Django 给了我一个错误

raise InvalidQuery('Raw query must include the primary key')
django.db.models.query_utils.InvalidQuery: Raw query must include the primary key.

查询是

cust=Customer.objects.raw("""SELECT "custCity" FROM customer where "custId"= 'Cust101'  """)
for c in cust:
   print(c)

此外,该表有一个外键也显示错误。在我的交易表中,orderId 是一个外键。

django.db.utils.ProgrammingError: relation "transaction" does not exist
LINE 1: select * from Transaction

我已经搜索过这个但没有得到预期的答案。先感谢您。

标签: djangopostgresqldjango-modelsdjango-queryset

解决方案


对于第一个问题,我已经解决了一个问题答案是

>>>cust=Customer.objects.raw("""SELECT "custId" , "custCity" FROM customer where "custId"= 'Cust101'  """)

>>> for c in cust:
`...     print(c)`

推荐阅读