Based on Yakovlevβs answer, you can make a list of dynamic elements:
from sqlalchemy import Column, Integer, String class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) def __init__(self, **kwargs): keep_kwargs = {k: v for k, v in kwargs.items() if k in user_columns} super(User, self).__init__(**keep_kwargs) user_columns = [_ for _ in User.__dict__.keys() if not _.startswith('_')]
I wanted to try to find a way to embed user_columns into an object, for example using @hybrid_property, but not call it every time it is used.
I expect it is possible, but exceeded my deadline.
source share