fixed examples, corrected small bugs in the process

This commit is contained in:
Sébastien Piquemal 2012-02-14 10:05:28 +02:00
parent b33579a7a1
commit 821844bb11
5 changed files with 23 additions and 18 deletions

View File

@ -13,7 +13,7 @@ from django.utils import simplejson as json
from djangorestframework.compat import yaml from djangorestframework.compat import yaml
from djangorestframework.utils import dict2xml, url_resolves from djangorestframework.utils import dict2xml, url_resolves, allowed_methods
from djangorestframework.utils.breadcrumbs import get_breadcrumbs from djangorestframework.utils.breadcrumbs import get_breadcrumbs
from djangorestframework.utils.mediatypes import get_media_type_params, add_media_type_param, media_type_matches from djangorestframework.utils.mediatypes import get_media_type_params, add_media_type_param, media_type_matches
from djangorestframework import VERSION from djangorestframework import VERSION
@ -349,6 +349,7 @@ class DocumentingTemplateRenderer(BaseRenderer):
'name': name, 'name': name,
'version': VERSION, 'version': VERSION,
'breadcrumblist': breadcrumb_list, 'breadcrumblist': breadcrumb_list,
'allowed_methods': allowed_methods(self.view),
'available_formats': self.view._rendered_formats, 'available_formats': self.view._rendered_formats,
'put_form': put_form_instance, 'put_form': put_form_instance,
'post_form': post_form_instance, 'post_form': post_form_instance,

View File

@ -75,7 +75,7 @@ class Response(SimpleTemplateResponse):
Returns reason text corresponding to our HTTP response status code. Returns reason text corresponding to our HTTP response status code.
Provided for convenience. Provided for convenience.
""" """
return STATUS_CODE_TEXT.get(self.status, '') return STATUS_CODE_TEXT.get(self.status_code, '')
def _determine_accept_list(self): def _determine_accept_list(self):
""" """
@ -166,5 +166,11 @@ class ImmediateResponse(Response, BaseException):
""" """
A subclass of :class:`Response` used to abort the current request handling. A subclass of :class:`Response` used to abort the current request handling.
""" """
pass
def __str__(self):
"""
Since this class is also an exception it has to provide a sensible
representation for the cases when it is treated as an exception.
"""
return ('%s must be caught in try/except block, '
'and returned as a normal HttpResponse' % self.__class__.__name__)

View File

@ -29,7 +29,7 @@
<div id="content" class="{% block coltype %}colM{% endblock %}"> <div id="content" class="{% block coltype %}colM{% endblock %}">
{% if 'OPTIONS' in view.allowed_methods %} {% if 'OPTIONS' in allowed_methods %}
<form action="{{ request.get_full_path }}" method="post"> <form action="{{ request.get_full_path }}" method="post">
{% csrf_token %} {% csrf_token %}
<input type="hidden" name="{{ METHOD_PARAM }}" value="OPTIONS" /> <input type="hidden" name="{{ METHOD_PARAM }}" value="OPTIONS" />
@ -42,11 +42,11 @@
<p>{{ description }}</p> <p>{{ description }}</p>
<div class='module'> <div class='module'>
<pre><b>{{ response.status_code }} {{ response.status_text }}</b>{% autoescape off %} <pre><b>{{ response.status_code }} {{ response.status_text }}</b>{% autoescape off %}
{% for key, val in response.headers.items %}<b>{{ key }}:</b> {{ val|urlize_quoted_links }} {% for key, val in response.items %}<b>{{ key }}:</b> {{ val|urlize_quoted_links }}
{% endfor %} {% endfor %}
{{ content|urlize_quoted_links }}</pre>{% endautoescape %}</div> {{ content|urlize_quoted_links }}</pre>{% endautoescape %}</div>
{% if 'GET' in view.allowed_methods %} {% if 'GET' in allowed_methods %}
<form> <form>
<fieldset class='module aligned'> <fieldset class='module aligned'>
<h2>GET {{ name }}</h2> <h2>GET {{ name }}</h2>
@ -65,7 +65,7 @@
{# Only display the POST/PUT/DELETE forms if method tunneling via POST forms is enabled and the user has permissions on this view. #} {# Only display the POST/PUT/DELETE forms if method tunneling via POST forms is enabled and the user has permissions on this view. #}
{% if METHOD_PARAM and response.status_code != 403 %} {% if METHOD_PARAM and response.status_code != 403 %}
{% if 'POST' in view.allowed_methods %} {% if 'POST' in allowed_methods %}
<form action="{{ request.get_full_path }}" method="post" {% if post_form.is_multipart %}enctype="multipart/form-data"{% endif %}> <form action="{{ request.get_full_path }}" method="post" {% if post_form.is_multipart %}enctype="multipart/form-data"{% endif %}>
<fieldset class='module aligned'> <fieldset class='module aligned'>
<h2>POST {{ name }}</h2> <h2>POST {{ name }}</h2>
@ -86,7 +86,7 @@
</form> </form>
{% endif %} {% endif %}
{% if 'PUT' in view.allowed_methods %} {% if 'PUT' in allowed_methods %}
<form action="{{ request.get_full_path }}" method="post" {% if put_form.is_multipart %}enctype="multipart/form-data"{% endif %}> <form action="{{ request.get_full_path }}" method="post" {% if put_form.is_multipart %}enctype="multipart/form-data"{% endif %}>
<fieldset class='module aligned'> <fieldset class='module aligned'>
<h2>PUT {{ name }}</h2> <h2>PUT {{ name }}</h2>
@ -108,7 +108,7 @@
</form> </form>
{% endif %} {% endif %}
{% if 'DELETE' in view.allowed_methods %} {% if 'DELETE' in allowed_methods %}
<form action="{{ request.get_full_path }}" method="post"> <form action="{{ request.get_full_path }}" method="post">
<fieldset class='module aligned'> <fieldset class='module aligned'>
<h2>DELETE {{ name }}</h2> <h2>DELETE {{ name }}</h2>

View File

@ -82,7 +82,7 @@ class PygmentsRoot(View):
remove_oldest_files(HIGHLIGHTED_CODE_DIR, MAX_FILES) remove_oldest_files(HIGHLIGHTED_CODE_DIR, MAX_FILES)
self.headers['Location'] = reverse('pygments-instance', args=[unique_id]) self.headers['Location'] = reverse('pygments-instance', args=[unique_id])
return Response(status.HTTP_201_CREATED) return Response(status=status.HTTP_201_CREATED)
class PygmentsInstance(View): class PygmentsInstance(View):
@ -90,7 +90,7 @@ class PygmentsInstance(View):
Simply return the stored highlighted HTML file with the correct mime type. Simply return the stored highlighted HTML file with the correct mime type.
This Resource only renders HTML and uses a standard HTML renderer rather than the renderers.DocumentingHTMLRenderer class. This Resource only renders HTML and uses a standard HTML renderer rather than the renderers.DocumentingHTMLRenderer class.
""" """
renderers = (HTMLRenderer,) renderer_classes = (HTMLRenderer,)
def get(self, request, unique_id): def get(self, request, unique_id):
""" """

View File

@ -25,10 +25,8 @@ class ProxyView(View):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
return Response(self.response.content) return Response(self.response.content)
def __getattribute__(self, name): def get_name(self):
if name == '__name__': return self.view_class.__name__
return self.view_class.__name__
elif name == '__doc__': def get_description(self, html):
return self.view_class.__doc__ return self.view_class.__doc__
else:
return super(ProxyView, self).__getattribute__(name)