РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
296 of 307 menu

Параметр exclude_defaults

Параметр exclude_defaults применяется в методах сериализации FastAPI, таких как model_dump и model_dump_json, а также в параметрах маршрутов response_model_exclude_defaults. Он принимает булево значение и указывает, нужно ли исключать из результата поля модели, значения которых равны значениям по умолчанию. Если параметр равен True, такие поля не попадают в результат. По умолчанию параметр равен False.

Синтаксис

model_dump(exclude_defaults=True)

Пример

Давайте создадим модель с полем, имеющим значение по умолчанию, и сравним результат сериализации с параметром и без него:

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class User(BaseModel): name: str age: int = 18 @app.get('/user') def get_user(): user = User(name='abcde') res = user.model_dump() return res

Результат выполнения кода:

{"name": "abcde", "age": 18}

Теперь применим параметр exclude_defaults:

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class User(BaseModel): name: str age: int = 18 @app.get('/user') def get_user(): user = User(name='abcde') res = user.model_dump(exclude_defaults=True) return res

Результат выполнения кода:

{"name": "abcde"}

Пример

Давайте используем параметр response_model_exclude_defaults в декораторе маршрута, чтобы FastAPI автоматически исключал поля со значениями по умолчанию из ответа:

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class User(BaseModel): name: str age: int = 18 city: str = 'user' @app.get('/user', response_model=User, response_model_exclude_defaults=True) def get_user(): return User(name='abcde', age=25)

Результат выполнения кода:

{"name": "abcde", "age": 25}

Поле city со значением по умолчанию 'user' не попало в ответ, так как оно не было задано явно.

Смотрите также

  • параметр exclude_unset,
    который исключает неустановленные поля
  • параметр exclude_none,
    который исключает поля со значением None
  • параметр exclude,
    который исключает указанные поля из результата
  • параметр include,
    который включает только указанные поля в результат
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить