﻿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
9897	Misleading model formsets docs	sorl	Jacob	"The following example could easily generate an invalid queryset:

{{{
from django.forms.models import BaseModelFormSet

class BaseAuthorFormSet(BaseModelFormSet):
    def get_queryset(self):
        return super(BaseAuthorFormSet, self).get_queryset().filter(name__startswith='O')

}}}

Calling super method will slice the queryset if max_num is set, and thus filter on the slice will be invalid. The following would be more correct:

{{{
from django.forms.models import BaseModelFormSet

class BaseAuthorFormSet(BaseModelFormSet):
    def get_queryset(self):
        if not hasattr(self, '_queryset'):
            if self.queryset is not None:
                qs = self.queryset
            else:
                qs = self.model._default_manager.get_query_set().filter(name__startswith='O')
            if self.max_num > 0:
                self._queryset = qs[:self.max_num]
            else:
                self._queryset = qs
        return self._queryset
}}}

"		closed	Documentation	1.0		fixed		mikko@…	Accepted	0	0	0	0	0	0
