@utilities.arguments_not_none<EOL><INDENT>@check_effective<EOL>def get_response_form(self, assessment_section_id, item_id):<DEDENT>
if not isinstance(item_id, ABCId):<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>record_type_data_sets = get_registry('<STR_LIT>', self._runtime)<EOL>section = self.get_assessment_section(assessment_section_id)<EOL>question = section.get_question(item_id)<EOL>ils = section._get_item_lookup_session()<EOL>real_item_id = Id(question._my_map['<STR_LIT>'])<EOL>item = ils.get_item(real_item_id)<EOL>item_map = item.object_map<EOL>all_answers = item_map['<STR_LIT>']<EOL>try:<EOL><INDENT>all_answers += [wa.object_map for wa in item.get_wrong_answers()]<EOL><DEDENT>except AttributeError:<EOL><INDENT>pass<EOL><DEDENT>answer_record_types = []<EOL>if len(all_answers) > <NUM_LIT:0>:<EOL><INDENT>for record_type_idstr in all_answers[<NUM_LIT:0>]['<STR_LIT>']:<EOL><INDENT>identifier = Id(record_type_idstr).get_identifier()<EOL>if identifier in record_type_data_sets:<EOL><INDENT>answer_record_types.append(Type(**record_type_data_sets[identifier]))<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>for record_type_idstr in item_map['<STR_LIT>']['<STR_LIT>']:<EOL><INDENT>identifier = Id(record_type_idstr).get_identifier()<EOL>if identifier in record_type_data_sets:<EOL><INDENT>answer_record_types.append(Type(**record_type_data_sets[identifier]))<EOL><DEDENT><DEDENT><DEDENT>obj_form = objects.AnswerForm(<EOL>bank_id=self._catalog_id,<EOL>record_types=answer_record_types,<EOL>item_id=item_id,<EOL>catalog_id=self._catalog_id,<EOL>assessment_section_id=assessment_section_id,<EOL>runtime=self._runtime,<EOL>proxy=self._proxy)<EOL>obj_form._for_update = False  <EOL>self._forms[obj_form.get_id().get_identifier()] = not SUBMITTED<EOL>return obj_form<EOL>
Gets the response form for submitting an answer.

        arg:    assessment_section_id (osid.id.Id): ``Id`` of the
                ``AssessmentSection``
        arg:    item_id (osid.id.Id): ``Id`` of the ``Item``
        return: (osid.assessment.AnswerForm) - an answer form
        raise:  IllegalState - ``has_assessment_section_begun()`` is
                ``false or is_assessment_section_over()`` is ``true``
        raise:  NotFound - ``assessment_section_id`` or ``item_id`` is
                not found, or ``item_id`` not part of
                ``assessment_section_id``
        raise:  NullArgument - ``assessment_section_id`` or ``item_id``
                is ``null``
        raise:  OperationFailed - unable to complete request
        raise:  PermissionDenied - authorization failure occurred
        *compliance: mandatory -- This method must be implemented.*