def post(self, *args, **kwargs):
self.form = self.get_form()
self.object_list = self.get_queryset()
bulk_action_form = self.get_bulk_action_form()
errors = None
if bulk_action_form.is_valid():
try:
with transaction.atomic():
for bug in bulk_action_form.cleaned_data['bugs']:
state_machine = self.mutator_class(self.request.user, bug)
state_machine.process_action(bulk_action_form.cleaned_data)
except ValidationError as e:
errors = e
else:
errors = sum(bulk_action_form.errors.values(), [])
if errors:
for error in errors:
messages.error(self.request, 'Bulk Action Failed: {}'.format(error))
else:
bug_count = len(bulk_action_form.cleaned_data['bugs'])
messages.success(
self.request,
'Success: {} bug{} updated'.format(bug_count, pluralize(bug_count)),
)
return HttpResponseRedirect(self.request.get_full_path())
评论列表
文章目录