Создать объект из связанного класса или его собственного класса?

#python #class #orm #model

#python #класс #orm #Модель

Вопрос:

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

 Class State(BaseModel):
    ...


Class City(BaseModel):
    ...
    def create_from_state(state_id:int, city_name):
        # Manipulate some data from State.
        # Then finally a quick `City.create(attributes)`.
  

Должен ли я вместо этого делать create() из другой модели?

 Class State(BaseModel):
    ...

    def create_city(id, city_name):


Class City(BaseModel):
    ...
  

Вот как выглядят различные варианты:

City.create_from_state(state_id=s_id, city_name='Boston')

против

my_state.create_city(city_name=Boston)

Ответ №1:

Насколько я понимаю, вы разделяете некоторые атрибуты между городом и штатом, поскольку причина, по которой вы наследуете оба из общей базовой модели.

Я думаю, что лучше просто иметь модели City и State, без общего родителя, а затем передавать ссылку на состояние при создании города. Затем вы можете получить доступ к нужным вам атрибутам из ссылки на состояние непосредственно перед созданием или при инициализации города.

У города есть штат, а в штате много городов в отношениях (состояние 1: M Город).