Skip to main content

Mutually Exclusive form field wigets for Django

Project description

# Mutually Exclusive Form Fields
[![Build Status](](

Easily add mutually exclusive fields to Django forms.
## Install
### PyPI
pip install django-xor-formfields

### Source
python install

## Example mutually exclusive form field (TextInput & Select):
# with a widget inference
fields=(forms.TypedChoiceField(choices=[(1,1), (2,2)], coerce=int),

# manual widget creation (allows for the placeholder attr & other customization)
fields=(forms.IntegerField(), forms.IntegerField()),
forms.Select(choices=[(1,1), (2,2)]),
forms.TextInput(attrs={'placeholder': 'Enter a number'}),

## Using FileOrUrlField
This library also includes a more complete field that inherits from
`MutuallyExclusiveValueField` that allows users to upload files via an URL or a
file upload. The field accepts a `to` parameter accepting the following values:
`None, 'url', 'file'`. This value causes the field to perform either no
normalization, normalizatoin to an url (by storing uploaded files as media) or
to a file (by downloading urls to an `InMemoryUploadedFile`).
### Example:
FileOrUrlField(None) # returns UploadedFile objects or URL based on user input
FileOrUrlField(to='file') # always validates to an UploadedFile
FileOrUrlField(to='url', upload_to='foobar') # always validates to an URL
#### AWS note:
The `FileOrUrlField` supports a they keyword argument `no_aws_qs` which
disables aws querystring authorization if using AWS via `django-storages`

## Tests & coverage!
to run the tests simply run:
DJANGO_SETTINGS_MODULE=xorformfields.test_settings test xorformfields

Coverage results are available here:

Project details

Download files

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

Files for django-xor-formfields, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size django_xor_formfields-0.1.0-py2-none-any.whl (11.4 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size django-xor-formfields-0.1.0.tar.gz (8.8 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page