def METHOD_NAME(self, request, *args, **kwargs):
    report_id = kwargs["report_id"]
    try:
        sac = SingleAuditChecklist.objects.get(report_id=report_id)
        form = UploadReportForm(request.POST, request.FILES)
        if form.is_valid():
            file = request.FILES["upload_report"]
            component_page_numbers = {
                "financial_statements": form.cleaned_data["financial_statements"],
                "financial_statements_opinion": form.cleaned_data[
                    "financial_statements_opinion"
                ],
                "schedule_expenditures": form.cleaned_data["schedule_expenditures"],
                "schedule_expenditures_opinion": form.cleaned_data[
                    "schedule_expenditures_opinion"
                ],
                "uniform_guidance_control": form.cleaned_data[
                    "uniform_guidance_control"
                ],
                "uniform_guidance_compliance": form.cleaned_data[
                    "uniform_guidance_compliance"
                ],
                "GAS_control": form.cleaned_data["GAS_control"],
                "GAS_compliance": form.cleaned_data["GAS_compliance"],
                "schedule_findings": form.cleaned_data["schedule_findings"],
                # These two fields are optional on the part of the submitter
                "schedule_prior_findings": form.cleaned_data[
                    "schedule_prior_findings"
                ]
                or None,
                "CAP_page": form.cleaned_data["CAP_page"] or None,
            }
            sar_file = SingleAuditReportFile(
                **{
                    "component_page_numbers": component_page_numbers,
                    "file": file,
                    "filename": file.name,
                    "sac_id": sac.id,
                }
            )
            sar_file.full_clean()
            sar_file.save(
                event_user=request.user,
                event_type=SubmissionEvent.EventType.AUDIT_REPORT_PDF_UPDATED,
            )
            # PDF issues can be communicated to the user with form.errors["upload_report"]
            return redirect(reverse("audit:SubmissionProgress", args=[report_id]))
        context = {
            "auditee_name": sac.auditee_name,
            "report_id": report_id,
            "auditee_uei": sac.auditee_uei,
            "user_provided_organization_type": sac.user_provided_organization_type,
            "page_number_inputs": self.page_number_inputs(),
            "form": form,
        }
        return render(request, "audit/upload-report.html", context)
    except SingleAuditChecklist.DoesNotExist as err:
        raise PermissionDenied("You do not have access to this audit.") from err
    except LateChangeError:
        return render(request, "audit/no-late-changes.html")
    except Exception as err:
        logger.info("Unexpected error in UploadReportView post:\n %s", err)
        raise BadRequest() from err