| 1635 | return list(self._check_values(value)) |
| 1636 | |
| 1637 | def clean(self, value): |
| 1638 | value = self.prepare_value(value) |
| 1639 | if self.required and not value: |
| 1640 | raise ValidationError(self.error_messages["required"], code="required") |
| 1641 | elif not self.required and not value: |
| 1642 | return self.queryset.none() |
| 1643 | if not isinstance(value, (list, tuple)): |
| 1644 | raise ValidationError( |
| 1645 | self.error_messages["invalid_list"], |
| 1646 | code="invalid_list", |
| 1647 | ) |
| 1648 | qs = self._check_values(value) |
| 1649 | # Since this overrides the inherited ModelChoiceField.clean |
| 1650 | # we run custom validators here |
| 1651 | self.run_validators(value) |
| 1652 | return qs |
| 1653 | |
| 1654 | def _check_values(self, value): |
| 1655 | """ |