I have a model formset that I want to display 10 forms at a time using Django\'s Paginator, but it can\'t be done like paginator = Paginator(formset, 10). What\
A more elegant solution is to set ordered=True on the Page object so that it can be passed to a ModelFormSet.
Here is an example:
forms_per_page = 10
current_page = 1
ModelFormSet = modelformset_factory(MyModel, form=MyForm)
queryset = MyModel.objects.all()
paginator = Paginator(queryset, forms_per_page)
page_object = paginator.page(current_page)
page_object.ordered = True
form = ModelFormSet(queryset=page_object)
This is more efficient than the accepted answer because avoids the second database query that takes place in the line:
page_query = query.filter(id__in=[object.id for object in objects])