docs: def get_submissions(student_item_dict, limit=None):
      """Retrieves the submissions for the specified student item,
      ordered by most recent submitted date.
  
      Returns the submissions relative to the specified student item. Exception
      thrown if no submission is found relative to this location.
  
      Args:
          student_item_dict (dict): The location of the problem this submission is
              associated with, as defined by a course, student, and item.
          limit (int): Optional parameter for limiting the returned number of
              submissions associated with this student item. If not specified, all
              associated submissions are returned.
  
      Returns:
          List dict: A list of dicts for the associated student item. The submission
          contains five attributes: student_item, attempt_number, submitted_at,
          created_at, and answer. 'student_item' is the ID of the related student
          item for the submission. 'attempt_number' is the attempt this submission
          represents for this question. 'submitted_at' represents the time this
          submission was submitted, which can be configured, versus the
          'created_at' date, which is when the submission is first created.
  
      Raises:
          SubmissionRequestError: Raised when the associated student item fails
              validation.
          SubmissionNotFoundError: Raised when a submission cannot be found for
              the associated student item.
  
      Examples:
          >>> student_item_dict = dict(
          >>>    student_id="Tim",
          >>>    item_id="item_1",
          >>>    course_id="course_1",
          >>>    item_type="type_one"
          >>> )
          >>> get_submissions(student_item_dict, 3)
          [{
              'student_item': 2,
              'attempt_number': 1,
              'submitted_at': datetime.datetime(2014, 1, 29, 23, 14, 52, 649284, tzinfo=<UTC>),
              'created_at': datetime.datetime(2014, 1, 29, 17, 14, 52, 668850, tzinfo=<UTC>),
              'answer': u'The answer is 42.'
          }]
  
      """
      student_item_model = _get_or_create_student_item(student_item_dict)
      try:
          submission_models = Submission.objects.filter(
              student_item=student_item_model)
      except DatabaseError:
          error_message = (
              u"Error getting submission request for student item {}"
              .format(student_item_dict)
          )
          logger.exception(error_message)
          raise SubmissionNotFoundError(error_message)
  
      if limit:
          submission_models = submission_models[:limit]
  
      return SubmissionSerializer(submission_models, many=True).data