mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-11-04 01:47:59 +03:00 
			
		
		
		
	Add interactive docs error template (#5548)
This commit is contained in:
		
							parent
							
								
									e5cee43000
								
							
						
					
					
						commit
						565c722762
					
				| 
						 | 
				
			
			@ -812,6 +812,7 @@ class DocumentationRenderer(BaseRenderer):
 | 
			
		|||
    format = 'html'
 | 
			
		||||
    charset = 'utf-8'
 | 
			
		||||
    template = 'rest_framework/docs/index.html'
 | 
			
		||||
    error_template = 'rest_framework/docs/error.html'
 | 
			
		||||
    code_style = 'emacs'
 | 
			
		||||
    languages = ['shell', 'javascript', 'python']
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -824,9 +825,19 @@ class DocumentationRenderer(BaseRenderer):
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
    def render(self, data, accepted_media_type=None, renderer_context=None):
 | 
			
		||||
        if isinstance(data, coreapi.Document):
 | 
			
		||||
            template = loader.get_template(self.template)
 | 
			
		||||
            context = self.get_context(data, renderer_context['request'])
 | 
			
		||||
            return template.render(context, request=renderer_context['request'])
 | 
			
		||||
        else:
 | 
			
		||||
            template = loader.get_template(self.error_template)
 | 
			
		||||
            context = {
 | 
			
		||||
                "data": data,
 | 
			
		||||
                "request": renderer_context['request'],
 | 
			
		||||
                "response": renderer_context['response'],
 | 
			
		||||
                "debug": settings.DEBUG,
 | 
			
		||||
            }
 | 
			
		||||
            return template.render(context, request=renderer_context['request'])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SchemaJSRenderer(BaseRenderer):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										75
									
								
								rest_framework/templates/rest_framework/docs/error.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								rest_framework/templates/rest_framework/docs/error.html
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,75 @@
 | 
			
		|||
{% load staticfiles %}
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
    <head>
 | 
			
		||||
        <meta charset="utf-8">
 | 
			
		||||
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | 
			
		||||
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
 | 
			
		||||
	    <title>Error Rendering Schema</title>
 | 
			
		||||
	</head>
 | 
			
		||||
    <body>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h1>Error</h1>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
{{ data }}
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{% if debug is True %}
 | 
			
		||||
<hr />
 | 
			
		||||
<h2>Additional Information</h2>
 | 
			
		||||
<p>Note: You are seeing this message because <code>DEBUG==True</code>.</p>
 | 
			
		||||
 | 
			
		||||
<p>Seeing this page is <em>usually</em> a configuration error: are your
 | 
			
		||||
<code>DEFAULT_AUTHENTICATION_CLASSES</code> or <code>DEFAULT_PERMISSION_CLASSES</code>
 | 
			
		||||
being applied unexpectedly?</p>
 | 
			
		||||
 | 
			
		||||
<p>Your response status code is: <code>{{ response.status_code }}</code></p>
 | 
			
		||||
 | 
			
		||||
<h3>401 Unauthorised.</h3>
 | 
			
		||||
<ul>
 | 
			
		||||
    <li>Do you have SessionAuthentication enabled?</li>
 | 
			
		||||
    <li>Are you logged in?</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h3>403 Forbidden.</h3>
 | 
			
		||||
<ul>
 | 
			
		||||
    <li>Do you have sufficient permissions to access this view?</li>
 | 
			
		||||
    <li>Is you schema non-empty? (An empty schema will lead to a permission denied error being raised.)</li>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<p>Most commonly the intended solution is to disable authentication and permissions
 | 
			
		||||
when including the docs urls:</p>
 | 
			
		||||
 | 
			
		||||
<pre>
 | 
			
		||||
   url(r'^docs/', include_docs_urls(title='Your API',
 | 
			
		||||
                                    authentication_classes=[],
 | 
			
		||||
                                    permission_classes=[])),
 | 
			
		||||
</pre>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<h2>Overriding this template</h2>
 | 
			
		||||
 | 
			
		||||
<p>If you wish access to your docs to be authenticated you may override this template
 | 
			
		||||
at <code>rest_framework/docs/error.html</code>.</p>
 | 
			
		||||
 | 
			
		||||
<p>The available context is: <code>data</code> the error dict above, <code>request</code>,
 | 
			
		||||
<code>response</code> and the <code>debug</code> flag.</p>
 | 
			
		||||
 | 
			
		||||
{% endif %}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        <script src="{% static 'rest_framework/docs/js/jquery-1.10.2.min.js' %}"></script>
 | 
			
		||||
    </body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user