Opened 18 years ago

Closed 13 years ago

#3470 closed New feature (fixed)

related data injection for related managers to reduce number of queries

Reported by: Ronny Pfannschmidt Owned by: nobody
Component: Database layer (models, ORM) Version: dev
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no
Pull Requests:How to create a pull request

Description

it would be nice, of querysets injected objects where used as query parameters to the result set

example using the polls app from the tutorial

from polls.models import *
from django.db import connection
Poll.objects.get(id=1).choice_set.all()[0].poll

results in 3 queries, since the related manager wont pass the orginal poll object to the instances of the choices

after this code connection.queries is

[
 {'time': '0.000', 
  'sql': 'SELECT "polls_poll"."id","polls_poll"."question","polls_poll"."pub_date" FROM "polls_poll" WHERE ("polls_poll"."id" = 1)'},       
 {'time': '0.000', 
  'sql': 'SELECT "polls_choice"."id","polls_choice"."poll_id","polls_choice"."choice","polls_choice"."votes" FROM "polls_choice" WHERE ("polls_choice"."poll_id" = 1) LIMIT 1 '}, 
 {'time': '0.000', 
  'sql': 'SELECT "polls_poll"."id","polls_poll"."question","polls_poll"."pub_date" FROM "polls_poll" WHERE ("polls_poll"."id" = 1)'}]

the same query twice just cause a python object doesn't get passed

Change History (10)

comment:1 by Simon G. <dev@…>, 18 years ago

Summary: related data injection for related managersrelated data injection for related managers to reduce number of queries
Triage Stage: UnreviewedAccepted

comment:2 by Ronny Pfannschmidt <ronny.pfannschmidt@…>, 18 years ago

i just noticed #17
i think they both adress a semilar problem

comment:3 by (removed), 18 years ago

Cc: ferringb@… added

comment:4 by Jacob, 17 years ago

Reporter: changed from Ronny Pfannschmidt <ronny.pfannschmidt@…> to Ronny Pfannschmidt

comment:5 by Adrian Holovaty, 16 years ago

Component: MetasystemDatabase wrapper

comment:6 by (removed), 16 years ago

Cc: ferringb@… removed

comment:7 by Łukasz Rekucki, 14 years ago

Severity: Normal
Type: New feature

comment:8 by Aymeric Augustin, 13 years ago

UI/UX: unset

Change UI/UX from NULL to False.

comment:9 by Aymeric Augustin, 13 years ago

Easy pickings: unset

Change Easy pickings from NULL to False.

comment:10 by Aymeric Augustin, 13 years ago

Resolution: fixed
Status: newclosed

#18177 was a duplicate and it was fixed.

Note: See TracTickets for help on using tickets.
Back to Top