mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
33b7d52d31
* moving docs to mkdocs * transfering readme to md and more * fixing build * splitting usage.md * improving schema.md and index.md * fix make_history.rst * models intro * working on data conversation and required fields * more fixes to models.md * list all standard types supported * list of pydantic types * tweaks * update links in code * Apply suggestions from code review incorporate @dmontagu's suggestions. Co-Authored-By: dmontagu <35119617+dmontagu@users.noreply.github.com> * Apply suggestions from code review more missed suggestions. Co-Authored-By: dmontagu <35119617+dmontagu@users.noreply.github.com> * Apply suggestions from code review more corrects. * cleanup * Field order warning * fix and regenerate benchmarks * format examples better, cleanup * improve schema mapping table * correct highlighting file types in schema.md * add redirects in javascript * add logo
41 lines
930 B
Python
41 lines
930 B
Python
from typing import List
|
|
from pydantic import BaseModel
|
|
|
|
class PetCls:
|
|
def __init__(self, *, name: str, species: str):
|
|
self.name = name
|
|
self.species = species
|
|
|
|
class PersonCls:
|
|
def __init__(self, *, name: str, age: float = None, pets: List[PetCls]):
|
|
self.name = name
|
|
self.age = age
|
|
self.pets = pets
|
|
|
|
class Pet(BaseModel):
|
|
name: str
|
|
species: str
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
class Person(BaseModel):
|
|
name: str
|
|
age: float = None
|
|
pets: List[Pet]
|
|
|
|
class Config:
|
|
orm_mode = True
|
|
|
|
bones = PetCls(name='Bones', species='dog')
|
|
orion = PetCls(name='Orion', species='cat')
|
|
anna = PersonCls(name='Anna', age=20, pets=[bones, orion])
|
|
anna_model = Person.from_orm(anna)
|
|
print(anna_model)
|
|
#> Person name='Anna'
|
|
#> pets=[
|
|
#> <Pet name='Bones' species='dog'>,
|
|
#> <Pet name='Orion' species='cat'>
|
|
#> ]
|
|
#> age=20.0
|