import logging
logger = logging.getLogger('django.db.backends')
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler())
./manage.py sqlmigrate app 0001_initial
from django.db import models
class Owner(models.Model):
name = models.TextField()
class Item(models.Model):
name = models.TextField()
owner = models.ForeignKey(Owner, on_delete=models.CASCADE)
res = list(
models.Item.objects.select_related('owner').all()
)
Example of result SQL queries:
SELECT "app_item"."id", "app_item"."name", "app_item"."owner_id", "app_owner"."id", "app_owner"."name"
FROM "app_item"
INNER JOIN "app_owner" ON ("app_item"."owner_id" = "app_owner"."id"); # args=()
res = list(
models.Owner.objects.prefetch_related('item_set').all()
)
Example of result SQL queries:
SELECT "app_owner"."id", "app_owner"."name" FROM "app_owner"; # args=()
SELECT "app_item"."id", "app_item"."name", "app_item"."owner_id"
FROM "app_item" WHERE "app_item"."owner_id" IN (1); # args=(1,)