docs: def _render_attributes(self, resource):
          """Render the resources's attributes."""
          attributes = {}
          attrs_to_ignore = set()
  
          for key, relationship in resource.__mapper__.relationships.items():
              attrs_to_ignore.update(set(
                  [column.name for column in relationship.local_columns]).union(
                      {key}))
  
          if self.dasherize:
              mapped_fields = {x: dasherize(underscore(x)) for x in self.fields}
          else:
              mapped_fields = {x: x for x in self.fields}
  
          for attribute in self.fields:
              if attribute == self.primary_key:
                  continue
              # Per json-api spec, we cannot render foreign keys
              # or relationsips in attributes.
              if attribute in attrs_to_ignore:
                  raise AttributeError
              try:
                  value = getattr(resource, attribute)
                  if isinstance(value, datetime.datetime):
                      attributes[mapped_fields[attribute]] = value.isoformat()
                  else:
                      attributes[mapped_fields[attribute]] = value
              except AttributeError:
                  raise
  
          return attributes