django - 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
我已经搜索过这个但没有得到预期的答案。先感谢您。
解决方案
对于第一个问题,我已经解决了一个问题答案是
>>>cust=Customer.objects.raw("""SELECT "custId" , "custCity" FROM customer where "custId"= 'Cust101' """)
>>> for c in cust:
`... print(c)`
推荐阅读
- reactjs - Json 对象作为回报工作,但不在渲染中的外部回报
- node.js - 在 mongodb 通知模式中存储不同的 id
- javascript - 无法循环输入并添加它们
- kubernetes - Kafka Pod 无法在 GKE 上启动
- android - 如何在颤动中为底部导航栏图标提供渐变
- laravel - 在 Laravel 5.7 中编码电子邮件
- javascript - 通过在 javascript 中通过 RegExp 包含标记来过滤用户列表数组
- java - Hazelcast IMap.putAll 没有调用 mapstore.store() 或 storeall
- php - Pusher PHP API:生产中保留的最少文件是多少?
- apache-kafka - kafka 通过 flink 到 opentsdb:java.lang.NoClassDefFoundError:无法初始化类 org.apache.http.conn.ssl.SSLConnectionSocketFactory