def METHOD_NAME(self, request):
    participant = self._get_participant_for_form(request)
    if 'mp_mpregistrationformdata' in request.session:
        # pylint: disable=not-callable
        form = self.form_class(request.session['mp_mpregistrationformdata'])
        del request.session['mp_mpregistrationformdata']
    else:
        form = self.get_form(request, participant)
    form.set_terms_accepted_text(self.get_terms_accepted_phrase())
    if request.method == 'POST':
        # pylint: disable=maybe-no-member
        if form.is_valid():
            participant, created = Participant.objects.get_or_create(
                contest=self.contest, user=request.user
            )
            self.handle_validated_form(request, form, participant)
            if 'next' in request.GET:
                return safe_redirect(request, request.GET['next'])
            else:
                return redirect('default_contest_view', contest_id=self.contest.id)
    can_unregister = False
    if participant:
        can_unregister = self.can_unregister(request, participant)
    context = {
        'form': form,
        'participant': participant,
        'can_unregister': can_unregister,
        'contest_name': self.contest.name,
    }
    return TemplateResponse(request, self.registration_template, context)