SQL-запрос, сгенерированный выражением django F - PullRequest
0 голосов
/ 01 декабря 2018

Кто-нибудь знает фактический запрос, сгенерированный django, когда вы используете выражение F?

Каким будет сгенерированный запрос для примера, упомянутого в документе: https://docs.djangoproject.com/en/2.1/ref/models/expressions/#f-expressions

from django.db.models import F

reporter = Reporters.objects.get(name='Tintin')
reporter.stories_filed = F('stories_filed') + 1
reporter.save()

Я пытался просмотреть сгенерированный запрос, используя:

from django.db import connection
logging.info('[----- DEBUG -----] Query -1: %s', connection.queries[-1])
logging.info('[----- DEBUG -----] Query -2: %s', connection.queries[-2])
logging.info('[----- DEBUG -----] Query -3: %s', connection.queries[-3])

, но я не вижу ни одного запроса в моей модели / таблице.

Кто-нибудь знает, как это выяснить?

1 Ответ

0 голосов
/ 01 декабря 2018

Запрос должен быть там в connection.queries - я только что проверил, нашел его там.Запрос, отправленный в базу данных, выглядит примерно так для MySQL и Postgresql:

UPDATE "myapp_reporters" 
SET "stories_filed" = ("myapp_reporters"."stories_filed" + 1) 
WHERE "myapp_reporters"."id" = 123
...