Skip to main content

Provide a workaround to use different method from GET or POST inside HTML forms

Project description

Build Status codecov CodeFactor PyPI Version Python 3.4+ Django 1.8, 1.10+, 2.0+ License MIT

django-http-method

Provide a workaround to use different method than GET or POST inside HTML forms in django templates. Works only with Class Based View.

Installation

From source code:

python setup.py install

From pip:

pip install django-http-method

Usage

Add django_http_method to your settings.INSTALLED_APPS
INSTALLED_APPS = (
    [...],
    django_http_method,
    [...],
)
Add the mixin to a CBV
from django.views.generic import View
from django_http_method import HttpMethodMixin

class TestView(HttpMethodMixin, View):
	
	def get(self, request):
		pass
	
	def delete(self, request):
		pass
	
	def put(self, request):
		pass
	
	[...]
In your template, load http_method and use {% http_[method] %} in your forms:
{% load http_method %}

<form action="/" method="post">
    {% csrf_token %}
    {% http_put %}
    [...]
    <button type="submit">Send a PUT request</button>
</form>


<form action="/" method="post">
    {% csrf_token %}
    {% http_patch %}
    [...]
    <button type="submit">Send a PATCH request</button>
</form>

The corresponding method of your View will now be called. For instance, if {% http_put %} was used, then TestView.put() will be called and any request parameter will be in request.PUT.


Changelog

1.0.2

  • Added pyaml to setup requirement.

1.0.1

  • Now use yaml.safe_load() instead of yaml.load()
  • Added python 3.7 and django 2.1 to test matrix

1.0.0

  • Initial release for python3.4+ and django1.8, 1.10, 1.11 and 2.0+

0.4.0

  • Will now search for parameters in body for methods PUT and PATCH
  • Method will default to request.method if '_method' parameter was not found

0.3.2

  • Added end slash '/' at the end of HTML input in templatetags

0.3.0

  • Removing '_method' from request parameters

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for django-http-method, version 1.0.2
Filename, size & hash File type Python version Upload date
django-http-method-1.0.2.tar.gz (5.3 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page