Metadata-Version: 2.1
Name: django-http-method
Version: 1.2.1
Summary: Provide a workaround to use different method from GET or POST inside HTML forms 
Home-page: https://github.com/qcoumes/django-http-method
Author: Coumes Quentin
Author-email: coumes.quentin@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet
Classifier: Environment :: Web Environment
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Framework :: Django
Classifier: Framework :: Django :: 2.0
Classifier: Framework :: Django :: 2.1
Classifier: Framework :: Django :: 2.2
Classifier: Framework :: Django :: 3.0
Classifier: Framework :: Django :: 3.1
Classifier: Framework :: Django :: 3.2
Description-Content-Type: text/markdown
License-File: LICENSE

[![Python package](https://github.com/qcoumes/django-http-method/workflows/Python%20package/badge.svg)](https://github.com/qcoumes/django-http-method/actions/)
[![codecov](https://codecov.io/gh/qcoumes/django-http-method/branch/master/graph/badge.svg)](https://codecov.io/gh/qcoumes/django-http-method)
[![CodeFactor](https://www.codefactor.io/repository/github/qcoumes/django-http-method/badge)](https://www.codefactor.io/repository/github/qcoumes/django-http-method)
[![PyPI Version](https://badge.fury.io/py/django-http-method.svg)](https://badge.fury.io/py/django-http-method)
[![Python 3.5+](https://img.shields.io/badge/python-3.5+-brightgreen.svg)](#)
[![Django 2+, 3+](https://img.shields.io/badge/django-2.0+%2C%203.0+-brightgreen.svg)](#)
[![License MIT](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://github.com/qcoumes/django-http-method/blob/master/LICENSE)

# 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

```python
INSTALLED_APPS = (
    [...],
    django_http_method,
    [...],
)
```

##### Add the mixin to a CBV

```python
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:
```html
{% 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.2.1

* Renamed template directory to `django_http_method`.


#### 1.2.0

* Dropped Django 1.X support.
* Now supports Django 3.2.

#### 1.1.1

* Now use Github action for testing and deployment

### 1.1.0

* Dropped python 3.4 support
* Now support django 3.0


#### 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


