Opened 16 years ago
Closed 16 years ago
#8119 closed (duplicate)
Accessing single related (parent) objects should not bypass manager
Reported by: | Ivan Sagalaev | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Unreviewed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
This is a spun-of from http://code.djangoproject.com/ticket/7666#comment:7 with the relevant discussion here: http://groups.google.com/group/django-developers/browse_frm/thread/a2326c32f8860fb0/
The solution is to have a separate queryset factory on a manager get_full_query_set
that can be overridden but is required to return all records. Old get_query_set
normally just calls get_full_query_set
and can be overridden in a usual way. This part is backwards compatible. Also managers acquire a new method get_full
which works like get
but explicitly calls get_full_query_set
. This method is used to access single related (parent) objects. This will require users who was overriding get
to override get_full
instead if they wish to ensure that default filtering doesn't get in the way. This is as backwards incompatible as was after #7666 that has broken overriding of get
but provides a new API to overcome this.
Attachments (1)
Change History (2)
by , 16 years ago
comment:1 by , 16 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Ivan, this is a duplicate of #7904. So I've added your patch, comments, and title to that ticket instead so we may centralize our discussion of this issue.
Patch