Form validator classes for common patterns in django ModelForms.
Project description
edc-form-validators
Form validator classes for ModelForms
ModelForm FormValidator
FormValidator simplifies common patterns used in ModelForm.clean. For example, if there is a response to field A then there should not a be response to field B and visa-versa.
Declare a form with it’s form_validator class and use FormValidatorMixin:
class MyFormValidator(FormValidator):
def clean(self):
self.required_if(
YES,
field='f1',
field_required='f2')
...
class MyModelForm(FormValidatorMixin, forms.ModelForm):
form_validator_cls = MyFormValidator
class Meta:
model = TestModel
fields = '__all__'
Testing
Test the form_validator without having to instantiate the ModelForm:
def test_my_form_validator(self):
options = {
'f1': YES,
'f2': None}
form_validator = MyFormValidator(cleaned_data=options)
self.assertRaises(ValidationError, form_validator.validate)
self.assertIn('f2', form_validator._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
File details
Details for the file edc_form_validators-0.3.41.tar.gz
.
File metadata
- Download URL: edc_form_validators-0.3.41.tar.gz
- Upload date:
- Size: 41.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a2d191804abc9bc329c70badb8d82c67092b19ee1906fb3d62a4d03031d081a |
|
MD5 | 2405e58ee678c990a4fb34733bc25e1b |
|
BLAKE2b-256 | 5005f7823697788c7b6949c8f660a3cb58ad0b9905c0d13aa1b5719e0388836a |
File details
Details for the file edc_form_validators-0.3.41-py3-none-any.whl
.
File metadata
- Download URL: edc_form_validators-0.3.41-py3-none-any.whl
- Upload date:
- Size: 48.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3ce5b21b35cc277419aede7663ef905e384f6411338195b735e4a5dbc032262 |
|
MD5 | f3c33bdf148d81ee4c56d2a8140958e5 |
|
BLAKE2b-256 | 81b847ff68a214de2abfba08b3b8edcae14ba7a9d81652d68fda3096ed2c38b6 |