﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
10532	An overridden get method on a custom manager passed to get_object_or_404 will not be called.	anonymous	Claude Paroz <claude@…>	"If a manager is passed in as the first argument to get_object_or_404, _get_queryset will convert it into a queryset via manager.all().
This means that an overridden get method on the manager passed to get_object_or_404 will not be called.  This is rather unintuitive.

{{{
# In django.shortcuts __init__.py
def _get_queryset(klass):
    """"""
    Returns a QuerySet from a Model, Manager, or QuerySet. Created to make
    get_object_or_404 and get_list_or_404 more DRY.
    """"""
    if isinstance(klass, QuerySet):
        return klass
    elif isinstance(klass, Manager):
        manager = klass
    else:
        manager = klass._default_manager
    return manager.all()


def get_object_or_404(klass, *args, **kwargs):
#...
queryset = _get_queryset(klass)
    try:
        return queryset.get(*args, **kwargs)
#...
}}}

Perhaps it should just be return manager instead of manager.all()."	Bug	closed	Database layer (models, ORM)	dev	Normal	fixed		django@… anubhav9042@…	Ready for checkin	1	0	0	0	0	0
