OdooWiki OCA HUB

Search Engine Serilizer Pydantic

search_engine_serializer_pydantic folder_open OCA/search-engine open_in_new
Sin categoría Licencia: AGPL-3

Este módulo es un módulo técnico que define una nueva clase abstracta llamada PydandicModelSerializer que hereda de odoo.addons.connector_search_engine.tools.serializer.ModelSerializer

Esta nueva clase define un nuevo método abstracto get_model_class. Este método es utilizado por el índice para obtener la clase de modelo Pydantic que se usará para generar el esquema json.

En el formulario del índice, si el serializador es un PydanticModelSerializer, se muestra un campo para mostrar el esquema json relacionado y, por lo tanto, proporcionar documentación sobre los campos exportados y sus características.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 18.0

Añade una sección de Pydantic al formulario del índice del motor de búsqueda que muestra el esquema JSON de los registros almacenados en el índice cuando el índice utiliza un serializador basado en Pydantic.

Este es un módulo técnico que amplía la pantalla de configuración del índice del motor de búsqueda (se.index). No añade menús nuevos; añade un grupo "Pydantic" dentro del formulario de índice existente, justo después del grupo de configuración.

  • Cuando el serializador seleccionado en el índice está basado en un modelo Pydantic, el formulario muestra un editor de código de solo lectura que muestra el esquema JSON de un registro almacenado en ese índice. Esto ayuda a los desarrolladores e integradores a ver qué campos se exportan y cuáles son sus características.
  • Cuando el serializador no está basado en Pydantic, el grupo Pydantic se oculta y los campos del esquema están vacíos.
  • Dos campos calculados admiten esto: uno booleano que indica si el serializador es un serializador Pydantic, y un campo de texto que contiene el esquema JSON. Ambos se calculan a partir del tipo de serializador del índice y no se almacenan en la base de datos.
  • El módulo también define una clase base abstracta de serializador con un método que devuelve la clase de modelo Pydantic utilizada para generar el esquema. Los serializadores concretos deben implementarlo.

Toca el modelo se.index y depende del conector del motor de búsqueda y de la librería pydantic de Python.

Lo necesitan otros módulos

Modelos y campos (1)
  • se.index · amplía un modelo existenterecord_json_schema (JSON Schema of a record stored in this index (as dict)), is_pydantic_serializer (Is a Serializer based on Pydantic Model?), record_json_schema_str (JSON Schema of a record stored in this index)

Texto generado por IA (DeepSeek) al leer el código de la versión 18.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 2 confirmadas, 7 sin información de 9 versiones.

Fuentes · Odoo 18.0

Confirmado el 2026-11-03 en la rama 18.0 de OCA/search-engine.

terminal Instalación y uso

Documentación de OCA · Odoo 18.0

Cuando defines un serializador basado en un modelo Pydantic, tu clase de serializador debe heredar de PydanticModelSerializer e implementar el método get_model_class para aprovechar la funcionalidad que proporciona este módulo.

Ejemplo:

from typing import Type
from pydantic import BaseModel

from odoo.addons.search_engine_serialize_pydantic.tools.serializer import (
    PydanticModelSerializer,
)


class MyModel(BaseModel):
    name: str
    description: str

    def record_to_model(self, record: Model) -> dict:
        return cls(
            name=record.name,
            description=record.description,
        )

class MyModelSerializer(PydanticModelSerializer):
    def get_model_class(self) -> Type[MyModel]:
        return MyModel

    def serialize(self, record: Model) -> dict:
        model: MyModel = self.get_model_class().record_to_model(record)
        return model.model_dump()

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.