跳转到主要内容

定义pydantic基类序列化器

项目描述

Beta License: AGPL-3 OCA/search-engine Translate me on Weblate Try me on Runboat

此模块是一个技术模块,定义了一个名为PydandicModelSerializer的新抽象类,它继承自odoo.addons.connector_search_engine.tools.serializer.ModelSerializer

此新类定义了一个新的抽象方法 get_model_class。此方法由索引用于获取用于生成json模式的Pydantic模型类。

在索引表单中,如果序列化器是PydanticModelSerializer,则会显示一个字段来显示相关的json模式,从而提供有关导出字段及其特性的文档。

目录

用例/上下文

当您将记录导出到搜索引擎时,通常希望提供有关导出字段及其特性的文档。

当用于导出记录的序列化器是Pydantic模型时,您可以使用Pydantic生成的json模式来提供此文档。

用法

当您基于Pydantic模型定义序列化器时,您的序列化器类必须继承自PydanticModelSerializer并实现方法 get_model_class 以利用此模块提供的功能。

示例

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()

已知问题/路线图

  • 在索引表单中添加专用小部件,以用户友好的方式显示序列化器生成的json模式。

错误跟踪器

错误追踪在 GitHub Issues 上。如有问题,请检查是否已有人报告过您的问题。如果您是第一个发现的,请通过提供详细且受欢迎的 反馈 来帮助我们解决问题。

请不要直接联系贡献者寻求支持或技术问题的帮助。

鸣谢

作者

  • ACSONE SA/NV

贡献者

其他鸣谢

本模块的开发得到了以下机构的财务支持:

维护者

本模块由 OCA 维护。

Odoo Community Association

OCA,即 Odoo 社区协会,是一个非营利组织,其使命是支持 Odoo 功能的协作开发并推广其广泛应用。

当前 维护者

lmignon

本模块是 GitHub 上 OCA/search-engine 项目的 OCA/search-engine 的一部分。

欢迎您贡献力量。了解如何贡献,请访问 https://odoo-community.org/page/Contribute

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分布

此版本没有提供源分布文件。有关生成分发存档的教程,请参阅 生成分发存档

构建分布

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页