def tool_config(request): url = "%s://%s%s" % ( request.scheme, request.get_host(), reverse('custom_redirect:lti_launch', exclude_resource_link_id=True) ) lti_tool_config = ToolConfig( title='Custom Redirect', launch_url=url, secure_launch_url=url, description='This LTI tool provides custom redirects based on the given LTI params', launch_presentation_document_target='window' ) # this is how to tell Canvas that this tool provides a course navigation link: course_nav_params = { 'enabled': 'true', 'text': 'Custom Redirect', 'default': 'disabled', 'visibility': 'admins', } lti_tool_config.set_ext_param('canvas.instructure.com', 'course_navigation', course_nav_params) lti_tool_config.set_ext_param('canvas.instructure.com', 'privacy_level', 'public') lti_tool_config.set_custom_param('redirect_type', 'sis_class_roster') return HttpResponse(lti_tool_config.to_xml(), content_type='text/xml')