docs: def to_representation(self, instance):
          """
          If we have a serializer mapping, use that.  Otherwise, use standard serializer behavior
          Since we might be dealing with multiple indexes, some fields might
          not be valid for all results. Do not render the fields which don't belong
          to the search result.
          """
          if self.Meta.serializers:
              ret = self.multi_serializer_representation(instance)
          else:
              ret = super(HaystackSerializer, self).to_representation(instance)
              prefix_field_names = len(getattr(self.Meta, "index_classes")) > 1
              current_index = self._get_index_class_name(type(instance.searchindex))
              for field in self.fields.keys():
                  # handle declared field value methods on serializer
                  value_method = getattr(self, "get_{}".format(field), None)
                  if value_method and callable(value_method):
                      ret[field] = value_method()
  
                  # now convert namespaced field names
                  orig_field = field
                  if prefix_field_names:
                      parts = field.split("__")
                      if len(parts) > 1:
                          index = parts[0][1:]  # trim the preceding '_'
                          field = parts[1]
                          if index == current_index:
                              ret[field] = ret[orig_field]
                          del ret[orig_field]
                  elif field not in chain(instance.searchindex.fields.keys(), self._declared_fields.keys()):
                      del ret[orig_field]
  
          # include the highlighted field in either case
          if getattr(instance, "highlighted", None):
              ret["highlighted"] = instance.highlighted[0]
          return ret