'The getter for self.fields. This returns the list of field objects
available to this model (including through parent models).
Callers are not permitted to modify this list, since it\'s a reference
to this instance (not a copy).'

@cached_property
def fields(self):

    try:
        self._field_name_cache
    except AttributeError:
        self._fill_fields_cache()
    return self._field_name_cache
