Opened 98 minutes ago

Last modified 37 minutes ago

#36593 new Cleanup/optimization

Deprecate select_related() with no arguments

Reported by: Adam Johnson Owned by:
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

Description

Currently, it’s possible to call select_related() with no arguments, documented thusly:

There may be some situations where you wish to call select_related() with a lot of related objects, or where you don’t know all of the relations. In these cases it is possible to call select_related() with no arguments. This will follow all non-null foreign keys it can find - nullable foreign keys must be specified. This is not recommended in most cases as it is likely to make the underlying query more complex, and return more data, than is actually needed.

In a comment thread discussing select_related() with no arguments, four contributors agreed it would be worth deprecating, due to its poor performance implications, degrading every time the given model gains a relation.

This deprecation would need to affect both select_related() with no arguments and the ModelAdmin.list_select_related = True option that uses it.

Change History (1)

comment:1 by Clifford Gama, 37 minutes ago

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