Class based views for handling more than one form in a single view
Project description
# Django Multi. Form View
[![CircleCI](https://circleci.com/gh/TimBest/django-multi-form-view.svg?style=shield)](https://circleci.com/gh/TimBest/django-multi-form-view)
[![codecov](https://codecov.io/gh/timbest/django-multi-form-view/branch/master/graph/badge.svg)](https://codecov.io/gh/timbest/django-multi-form-view)
[![PyPI](https://img.shields.io/pypi/v/django-multi-form-view.svg?maxAge=2592000)](https://pypi.python.org/pypi/django-multi-form-view)
Django class based views for using more than one Form or ModelForm in a single view.
## Install
```bash
$ pip install django-multi-form-view
```
## Usage
### MultiFormView ([Example](demo/base/views.py))
**class multi_form_view.MultiFormView**
A single view that can display multiple Django forms. Handles displaying, redisplaying on error, and
redirects on form success in.
#### Extends
* django.views.generic import FormView
#### Attributes and Methods
* `form_classes`
A dictionary containing to forms for the view.
* `are_forms_valid()`
Check if all forms defined in `form_classes` are valid.
* `forms_valid()`
Redirects to get_success_url().
* `forms_invalid()`
Renders a response containing the form errors.
* `get()`
Render the forms.
* `get_context_data()`
Adds the results of `get_forms()` to the context dictionary with the key `'forms'`.
* `get_forms()`.
Initializes the forms defined in `form_classes` with initial data from `get_initial()` and kwargs
from get_form_kwargs().
* `get_form_kwargs()`.
Build the keyword arguments required to instantiate the form.
* `get_initial()`
Returns a copy of `initial` with empty initial data dictionaries for each form.
* `post()`
Uses `are_forms_valid()` to call either `forms_valid()` or `forms_invalid()`.
### MultiModelFormView ([Example](demo/base/views.py))
**class multi_form_view.MultiModelFormView**
A single view that can display multiple Django ModelForms. Handles displaying, redisplaying on
error, and redirects on form success in.
#### Extends
* multi_form_view.MultiFormView
#### Attributes and Methods
* `forms_valid()`
Calls `save()` on each form.
* `get_forms()`.
Initializes the forms defined in `form_classes` with initial data from `get_initial()`, kwargs
from get_form_kwargs() and form instance object from `get_objects()`.
* `get_objects()`
Returns dictionary with the instance objects for each form. Keys should match the corresponding
form.
## Demo
```bash
$ cd demo
$ pip3 install -r requirements.txt
$ python3 manage.py migrate
$ python3 manage.py runserver
```
## Testing
Install [PhantomJS](http://phantomjs.org/)
```bash
$ python3 demo/manage.py behave
```
[![CircleCI](https://circleci.com/gh/TimBest/django-multi-form-view.svg?style=shield)](https://circleci.com/gh/TimBest/django-multi-form-view)
[![codecov](https://codecov.io/gh/timbest/django-multi-form-view/branch/master/graph/badge.svg)](https://codecov.io/gh/timbest/django-multi-form-view)
[![PyPI](https://img.shields.io/pypi/v/django-multi-form-view.svg?maxAge=2592000)](https://pypi.python.org/pypi/django-multi-form-view)
Django class based views for using more than one Form or ModelForm in a single view.
## Install
```bash
$ pip install django-multi-form-view
```
## Usage
### MultiFormView ([Example](demo/base/views.py))
**class multi_form_view.MultiFormView**
A single view that can display multiple Django forms. Handles displaying, redisplaying on error, and
redirects on form success in.
#### Extends
* django.views.generic import FormView
#### Attributes and Methods
* `form_classes`
A dictionary containing to forms for the view.
* `are_forms_valid()`
Check if all forms defined in `form_classes` are valid.
* `forms_valid()`
Redirects to get_success_url().
* `forms_invalid()`
Renders a response containing the form errors.
* `get()`
Render the forms.
* `get_context_data()`
Adds the results of `get_forms()` to the context dictionary with the key `'forms'`.
* `get_forms()`.
Initializes the forms defined in `form_classes` with initial data from `get_initial()` and kwargs
from get_form_kwargs().
* `get_form_kwargs()`.
Build the keyword arguments required to instantiate the form.
* `get_initial()`
Returns a copy of `initial` with empty initial data dictionaries for each form.
* `post()`
Uses `are_forms_valid()` to call either `forms_valid()` or `forms_invalid()`.
### MultiModelFormView ([Example](demo/base/views.py))
**class multi_form_view.MultiModelFormView**
A single view that can display multiple Django ModelForms. Handles displaying, redisplaying on
error, and redirects on form success in.
#### Extends
* multi_form_view.MultiFormView
#### Attributes and Methods
* `forms_valid()`
Calls `save()` on each form.
* `get_forms()`.
Initializes the forms defined in `form_classes` with initial data from `get_initial()`, kwargs
from get_form_kwargs() and form instance object from `get_objects()`.
* `get_objects()`
Returns dictionary with the instance objects for each form. Keys should match the corresponding
form.
## Demo
```bash
$ cd demo
$ pip3 install -r requirements.txt
$ python3 manage.py migrate
$ python3 manage.py runserver
```
## Testing
Install [PhantomJS](http://phantomjs.org/)
```bash
$ python3 demo/manage.py behave
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for django-multi-form-view-2.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40bca9a6841392b10f9c029187f4063ae4f5493792a55d8b4ed4bfa299f608de |
|
MD5 | 460b209b07645b5e0ffba825493a7a7f |
|
BLAKE2b-256 | 2b5d914b79ddf555f9f1fa7d32f849adc749b97f29c203361c1ced2d816a47ae |
Close
Hashes for django_multi_form_view-2.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de3a73ec914a7c02cae523ef080eb6024deb319ba5f219d5d1a7091220fbf7f1 |
|
MD5 | f49606f86375fd65ecdf5ba9f79baf0f |
|
BLAKE2b-256 | 7adc960db3e628ae990e950ccd5d3d4cb6e209b7b656008eedd8980c17332d25 |