Python Django管理操作获取错误的queryset
我正在做一个管理动作,改变我模型中的状态字段。这是我的动作代码Python Django管理操作获取错误的queryset,python,django,django-admin,django-admin-actions,Python,Django,Django Admin,Django Admin Actions,我正在做一个管理动作,改变我模型中的状态字段。这是我的动作代码 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']
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)
当我更改小queryset的状态时,它可以正常工作,但当我尝试对大queryset(3000个实例)运行此操作时,它只会更改前100个的状态。它不会抛出任何异常。如何解决此问题?作为猜测,请评论。。。我将假设您在多个页面上有问题。看看这里和这里,上面代码中的
queryset
值是多少?谢谢,它解决了我的问题