Multiple-value field for Django forms
Project description
# Multiple-value field for Django forms
## The problem
Say we want to use a Django form to validate form input such as the following:
```
?foo=spam&foo=egg&foo=chips
```
Django can parse this query-string to generate a list:
```
>>> request.GET.getlist("foo")
['spam', 'egg', 'chips']
```
...but it is not yet capable of validating the input using `django.forms`.
## How to use
Say for example, we want to validate a list of email addresses, with a query-string such as the following:
```
?email=foo@bar.com&email=spam@egg.com
```
Here are the steps we would take:
1. Install this module (e.g. using `pip install django_multivalueformfield`)
2. Define a form like the following:
```
import django.forms as forms
from multivaluefield import MultiValueField
class MultiEmailForm(forms.Form):
emails = MultiValueField(forms.EmailField(), "email")
```
3. Pass the `QueryDict` into the form and validate as per usual:
```
form = MultiEmailForm(request.GET)
if form.is_valid:
emails = form.cleaned_data["emails"]
# do something with emails
else:
errors = form.errors
# do something with errors
```
## The problem
Say we want to use a Django form to validate form input such as the following:
```
?foo=spam&foo=egg&foo=chips
```
Django can parse this query-string to generate a list:
```
>>> request.GET.getlist("foo")
['spam', 'egg', 'chips']
```
...but it is not yet capable of validating the input using `django.forms`.
## How to use
Say for example, we want to validate a list of email addresses, with a query-string such as the following:
```
?email=foo@bar.com&email=spam@egg.com
```
Here are the steps we would take:
1. Install this module (e.g. using `pip install django_multivalueformfield`)
2. Define a form like the following:
```
import django.forms as forms
from multivaluefield import MultiValueField
class MultiEmailForm(forms.Form):
emails = MultiValueField(forms.EmailField(), "email")
```
3. Pass the `QueryDict` into the form and validate as per usual:
```
form = MultiEmailForm(request.GET)
if form.is_valid:
emails = form.cleaned_data["emails"]
# do something with emails
else:
errors = form.errors
# do something with errors
```
Project details
Release history Release notifications | RSS feed
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_multivalueformfield-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7044127c151f85dbe08ac38da088b8654525a48b6c4658e6381036167daeab37 |
|
MD5 | 86d02d84bea71486fc3f2dded3a57663 |
|
BLAKE2b-256 | c6399dc9e2545a82796b4475b2163944fc0d217b8c144a9e31030130418204c6 |
Close
Hashes for django_multivalueformfield-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9804effa20b0acb0d0b199f92fa6e3753a022acf9bb1dbd99728d99f685dc8d5 |
|
MD5 | 269b76d6e964f24da19697a4c6dcf6c2 |
|
BLAKE2b-256 | ab0edef3ddadb470530907ea84b1609b7888700167cc401af191e4beb03aa62e |