Source code for smarter.apps.vectorsearch.serializers

# pylint: disable=missing-class-docstring,W0212
"""Vectorsearch serializers."""

from django.urls import reverse
from rest_framework import serializers

from smarter.apps.account.serializers import MetaDataWithOwnershipModelSerializer
from smarter.apps.vectorsearch.manifest.models.vectorsearch.const import (
    MANIFEST_KIND as VECTORSEARCH_KIND,
)

from .models import Vectorsearch


[docs] class VectorsearchSerializer(MetaDataWithOwnershipModelSerializer): """Serializer for the smarter.apps.vectorsearch.models.Vectorsearch model.""" manifest_url = serializers.SerializerMethodField() class Meta: model = Vectorsearch kind = VECTORSEARCH_KIND fields = "__all__"
[docs] def get_fields(self): fields = super().get_fields() for field in fields.values(): field.read_only = True return fields
[docs] def get_manifest_url(self, obj: Vectorsearch) -> str: """The URL of the Vectorsearch's detail view, which renders its manifest.""" # pylint: disable=C0415 from .urls import VectorsearchReverseNames return reverse( f"{VectorsearchReverseNames.namespace}:{VectorsearchReverseNames.detailview}", kwargs={"hashed_id": obj.hashed_id}, )
__all__ = [ "VectorsearchSerializer", ]