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)

8119.diff (2.5 KB ) - added by Ivan Sagalaev 16 years ago.
Patch

Download all attachments as: .zip

Change History (2)

by Ivan Sagalaev, 16 years ago

Attachment: 8119.diff added

Patch

comment:1 by jbronn, 16 years ago

Resolution: duplicate
Status: newclosed

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.

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