A field object that also includes `.value` and `.error` properties. Returned when iterating over a serializer instance, providing an API similar to Django forms and form fields.
| 65 | |
| 66 | |
| 67 | class BoundField: |
| 68 | """ |
| 69 | A field object that also includes `.value` and `.error` properties. |
| 70 | Returned when iterating over a serializer instance, |
| 71 | providing an API similar to Django forms and form fields. |
| 72 | """ |
| 73 | |
| 74 | def __init__(self, field, value, errors, prefix=''): |
| 75 | self._field = field |
| 76 | self._prefix = prefix |
| 77 | self.value = value |
| 78 | self.errors = errors |
| 79 | self.name = prefix + self.field_name |
| 80 | |
| 81 | def __getattr__(self, attr_name): |
| 82 | return getattr(self._field, attr_name) |
| 83 | |
| 84 | @property |
| 85 | def _proxy_class(self): |
| 86 | return self._field.__class__ |
| 87 | |
| 88 | def __repr__(self): |
| 89 | return '<%s value=%s errors=%s>' % ( |
| 90 | self.__class__.__name__, self.value, self.errors |
| 91 | ) |
| 92 | |
| 93 | def as_form_field(self): |
| 94 | value = '' if (self.value is None or self.value is False) else self.value |
| 95 | return self.__class__(self._field, value, self.errors, self._prefix) |
| 96 | |
| 97 | |
| 98 | class JSONBoundField(BoundField): |
no outgoing calls
no test coverage detected