'Given the request object and whatever *args and **kwargs were passed to
__call__(), returns the current step (which is zero-based).
Note that the result should not be trusted. It may even be a completely
invalid number. It\'s not the job of this method to validate it.'

def get_current_or_first_step(self, request, *args, **kwargs):

    if (not request.POST):
        return 0
    try:
        step = int(request.POST.get(self.step_field_name, 0))
    except ValueError:
        return 0
    return step
