# Django Multi. Form View
[](https://circleci.com/gh/TimBest/django-multi-form-view)
[](https://codecov.io/gh/timbest/django-multi-form-view)
[](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
```
[](https://circleci.com/gh/TimBest/django-multi-form-view)
[](https://codecov.io/gh/timbest/django-multi-form-view)
[](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
```
Metadata
Release files for django-multi-form-view 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| django-multi-form-view-2.0.1.tar.gz | 3.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_multi_form_view-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.0 kB
Release files / django-multi-form-view-2.0.1.tar.gz
| Download URL | django-multi-form-view-2.0.1.tar.gz |
|---|---|
| Size | 3.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
40bca9a6841392b10f9c029187f4063ae4f5493792a55d8b4ed4bfa299f608de
|
|
BLAKE2b-256 checksum How to use checksums |
2b5d914b79ddf555f9f1fa7d32f849adc749b97f29c203361c1ced2d816a47ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.7.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.0
|
Release files / django_multi_form_view-2.0.1-py3-none-any.whl
| Download URL | django_multi_form_view-2.0.1-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de3a73ec914a7c02cae523ef080eb6024deb319ba5f219d5d1a7091220fbf7f1
|
|
BLAKE2b-256 checksum How to use checksums |
7adc960db3e628ae990e950ccd5d3d4cb6e209b7b656008eedd8980c17332d25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.7.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.0
|
Security for django-multi-form-view 2.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.