Як включити обчислюваний поля, прикрашений як `@property`, в схему Pydantic v2 для JSON-схеми та серіалізації?

Як включити обчислюваний поля, прикрашений як `@property`, в схему Pydantic v2 для JSON-схеми та серіалізації?

4 Березня 2024 в 13:58 38

Робота з Pydantic v2 — це справжнє задоволення, але іноді стикаєшся з нюансами, такими як включення обчислюваних полів у схеми JSON та серіалізований вихід. Однак, вирішити цю проблему можна досить просто.

Мета: Забезпечити включення обчислюваного поля у JSON-схему, що генерується за допомогою .model_json_schema(). Забезпечити включення обчислюваного поля у серіалізований JSON-вихід з .model_dump_json().

Поточний підхід: Ось спрощена версія мого класу, де я визначив обчислюване поле full_name:

Проблеми: При виклику User.model_json_schema() поле full_name не включається у схему.

Щоб проілюструвати, ось як я намагаюся згенерувати схему та серіалізувати модель:

Питання: Як я можу модифікувати мій клас Pydantic або процес, щоб забезпечити включення обчислюваного поля full_name як у схему, так і у серіалізований вихід? Я шукаю рішення, яке працює безперервно з функціями та конвенціями Pydantic v2.