Объявить быстрый api, объект Python

Можем ли мы объявить модель, наследующую базовую модель, и поместить в нее значение, а не обычную модель Python?

Я могу принудительно создать модель PyTimeZoneSetting, но могу ли я использовать существующую TimeZoneSetting?

    from pydantic import BaseModel
    from typing import List, Optional

    class TimeZoneSetting(BaseModel):
        time_zone: str
        type: int
        sync_time: Optional[str] = None
        time_server: Optional[str] = None
        time_set_type: Optional[int] = None

    class PyTimeZoneSetting():
        time_zone: str
        type: int
        sync_time: str
        time_server: str
        time_set_type: str

    def update_system_timezone():
        !Here, I want to create a TimeZoneSetting model and put in a value.!

person sblee    schedule 06.01.2021    source источник


Ответы (1)


Я не совсем уверен в ваших намерениях, но я постараюсь привести пример, который мог бы удовлетворить ваши потребности.

Вот несколько способов инициализировать вашу Pydantic Model:

# initialize every field one by one
model_instance = TimeZoneSetting(time_zone="foo", type=1, sync_time="bar")

# provide your dict object
kwargs = {"time_zone": "foo", "type": 1}
model_instance = TimeZoneSetting(**kwargs)

Вот способ обновить вашу модель, где каждое поле доступно как атрибут вашего класса:

model_instance.time_zone = "bar"

Вот способ получить модель как диктат:

model_instance.dict()
person mustafasencer    schedule 06.01.2021
comment
Спасибо. Мне нужно установить часовой пояс, я хочу установить системное время самостоятельно или использовать ntpdate для синхронизации сервера. Предоставленные вами ответы помогли мне решить мою проблему. - person sblee; 07.01.2021