Added PATCH form to the Browsable API. Fix #570

This commit is contained in:
Michael Elovskikh 2013-01-17 15:16:31 +06:00
parent 0f0a07b732
commit c28a5d9a00
2 changed files with 27 additions and 0 deletions

View File

@ -427,6 +427,7 @@ class BrowsableAPIRenderer(BaseRenderer):
content = self.get_content(renderer, data, accepted_media_type, renderer_context)
put_form = self.get_form(view, 'PUT', request)
patch_form = self.get_form(view, 'PATCH', request)
post_form = self.get_form(view, 'POST', request)
delete_form = self.get_form(view, 'DELETE', request)
options_form = self.get_form(view, 'OPTIONS', request)
@ -448,6 +449,7 @@ class BrowsableAPIRenderer(BaseRenderer):
'allowed_methods': view.allowed_methods,
'available_formats': [renderer.format for renderer in view.renderer_classes],
'put_form': put_form,
'patch_form': patch_form,
'post_form': post_form,
'delete_form': delete_form,
'options_form': options_form,

View File

@ -173,6 +173,31 @@
</div>
{% endif %}
{% if patch_form %}
<div class="well">
<form action="{{ request.get_full_path }}" method="POST" {% if patch_form.is_multipart %}enctype="multipart/form-data"{% endif %} class="form-horizontal">
<fieldset>
<input type="hidden" name="{{ api_settings.FORM_METHOD_OVERRIDE }}" value="PATCH" />
{% csrf_token %}
{{ patch_form.non_field_errors }}
{% for field in patch_form %}
<div class="control-group"> <!--{% if field.errors %}error{% endif %}-->
{{ field.label_tag|add_class:"control-label" }}
<div class="controls">
{{ field }}
<span class='help-inline'>{{ field.help_text }}</span>
<!--{{ field.errors|add_class:"help-block" }}-->
</div>
</div>
{% endfor %}
<div class="form-actions">
<button class="btn btn-primary js-tooltip" title="Make a PATCH request on the {{ name }} resource">PATCH</button>
</div>
</fieldset>
</form>
</div>
{% endif %}
{% endif %}
</div>