Обновление столбца модели SQLAlchemy при изменении столбца связанной модели - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть модель пользователя и куча отношений на нем. Я хочу нацелить определенные столбцы c в разных моделях и изменить столбец на пользователя. Например, если экземпляр пользователя будет иметь отношение с user_experiences, я хочу сказать, если конкретный c столбец на user_experiences изменится, тогда я хочу user.needs_review = True.

, о котором я думал делал это со слушателями событий, но беспокоился о том, будет ли это масштабируемым. Например, вы изменили user_experiences, а затем под капотом, который запускает запрос для получения пользователя и изменяет логическое значение там. Также не уверен, целесообразно ли иметь всех этих слушателей событий на других моделях. Есть предложения?

Пример модели. Если какой-либо экземпляр пользователя experiences изменит значение, я хочу изменить User.needs_review на True, а если экземпляр пользователя career изменится, я хочу user.needs_review = True.

class User(Base):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    needs_review = db.Column(db.Boolean)
    career_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)



class UserExperience(Base):
    __tablename__ = 'user_experiences'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, primary_key=True)
    value = db.Column(db.Integer)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), index=True)


class UserCareer(Base):
    __tablename__ = 'user_careers'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, primary_key=True)
    value = db.Column(db.Integer)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...