#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 Город).