Действие администратора Django получает неправильный набор запросов
Я делаю действия администратора, которые меняют поле статуса в моей модели. Это мой код действия
def update_status(self, request, queryset):
form = None
if 'apply' in request.POST:
form = ChangeStatusForm(request.POST)
if form.is_valid():
status = form.cleaned_data['status']
queryset.update(status=status)
self.message_user(request, 'Статус изменен для %s билетов' % str(len(queryset)))
return HttpResponseRedirect(request.get_full_path())
if not form:
form = ChangeStatusForm(initial={'_selected_action': request.POST.getlist(admin.ACTION_CHECKBOX_NAME)})
return render(request, 'change_ticket.html', {'items': queryset, 'form': form, 'title': 'Изменение статуса',
'message': 'Новый статус будет назначен для следующих билетов:',
'action': 'update_status'})
и код формы
class ChangeStatusForm(forms.Form):
_selected_action = forms.CharField(widget=forms.MultipleHiddenInput())
status = forms.ChoiceField(choices=TICKET_STATUS)
Это нормально работает, когда я меняю статус для небольшого набора запросов, но когда я пытаюсь выполнить это действие с огромным набором запросов (3000 экземпляров), он меняет статус только для первых 100. Он не выдает никаких исключений. Как я могу это исправить?