#django #postgresql #django-models #django-queryset
#django #postgresql #django-models #django-queryset
Вопрос:
Я присвоил индивидуальное имя идентификатору (первичному ключу) и использовал в качестве строки, например
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
Я искал это, но не получил ожидаемого ответа.
Заранее благодарю.
Комментарии:
1. Просто предположение, возможно, ORM нуждается в PK для создания объектов Python, поэтому попробуйте:
("""SELECT "custId", "custCity" FROM customer ...
добавление pk к возвращаемым данным.2. привет, @C14L Спасибо, я решил первую проблему, теперь остается вторая, пожалуйста, помогите мне выяснить и это.
Ответ №1:
На первый вопрос, который я решил, ответ на проблему
>>>cust=Customer.objects.raw("""SELECT "custId" , "custCity" FROM customer where "custId"= 'Cust101' """)
>>> for c in cust:
`... print(c)`