Переопределение __init__
в подклассе Model
опасно, потому что конструктор используется платформой для восстановления экземпляров из хранилища данных, в дополнение к использованию пользовательским кодом.Если вы точно не знаете, как конструктор используется для реконструкции существующих объектов - что-то, что является внутренней деталью и может измениться в будущем - вам следует избегать ее переопределения.
Вместо этого определите метод фабрики, например:*
class MyModel(db.Model):
@classmethod
def new(cls, **kwargs):
return cls(key_name=str(uuid.uuid4()), **kwargs)