code: def can_proceed(bound_method, check_conditions=True):
      
      if not hasattr(bound_method, '_django_fsm'):
          im_func = getattr(bound_method, 'im_func', getattr(bound_method, '__func__'))
          raise TypeError('%s method is not transition' % im_func.__name__)
  
      meta = bound_method._django_fsm
      im_self = getattr(bound_method, 'im_self', getattr(bound_method, '__self__'))
      current_state = meta.field.get_state(im_self)
  
      return meta.has_transition(current_state) and (
          not check_conditions or meta.conditions_met(im_self, current_state))
docs: Returns True if model in state allows to call bound_method
  
      Set ``check_conditions`` argument to ``False`` to skip checking
      conditions.