| 1445 | |
| 1446 | |
| 1447 | class TestForm(Form): |
| 1448 | field = CharField() |
| 1449 | |
| 1450 | def clean_field(self): |
| 1451 | value = self.cleaned_data.get("field", "") |
| 1452 | if value == "invalid": |
| 1453 | raise ValidationError("invalid value") |
| 1454 | return value |
| 1455 | |
| 1456 | def clean(self): |
| 1457 | if self.cleaned_data.get("field") == "invalid_non_field": |
| 1458 | raise ValidationError("non-field error") |
| 1459 | return self.cleaned_data |
| 1460 | |
| 1461 | @classmethod |
| 1462 | def _get_cleaned_form(cls, field_value): |
| 1463 | form = cls({"field": field_value}) |
| 1464 | form.full_clean() |
| 1465 | return form |
| 1466 | |
| 1467 | @classmethod |
| 1468 | def valid(cls): |
| 1469 | return cls._get_cleaned_form("valid") |
| 1470 | |
| 1471 | @classmethod |
| 1472 | def invalid(cls, nonfield=False): |
| 1473 | return cls._get_cleaned_form("invalid_non_field" if nonfield else "invalid") |
| 1474 | |
| 1475 | |
| 1476 | class TestFormset(formset_factory(TestForm)): |