Запрос к БД внутри модели SQLAlchemy - PullRequest
0 голосов
/ 17 октября 2018

У меня есть модель SQLAlchemy, которая выглядит примерно так:

class Guest(db.Model):
    name = db.Column(db.String)

    current_status_id = db.Column(db.Integer, db.ForeignKey('approval_status.id'))
    current_status = db.relationship('ApprovalStatus')

Я хотел бы иметь такой метод:

    def reset_status(self):
        awaiting_response = db.session.query(Approvalstatus).get(1)
        self.current_status = awaiting_response

Запросы изнутри модели не кажутсяправо на меня по какой-то причине.Однако, похоже, что эта логика принадлежит классу Guest.

В настоящее время у меня есть гостевая служба, которая выглядит примерно так:

def reset_guest_approval(guest):
        awaiting_response = db.session.query(Approvalstatus).get(1)
        guest.current_status = awaiting_response

Я хочу объединить логику в класс, если это возможно.Каковы лучшие практики на этом?

1 Ответ

0 голосов
/ 17 октября 2018

В моем аналогичном случае я использовал object_session для выполнения запроса внутри функции класса.

class Guest(db.Model):
    name = db.Column(db.String)

    current_status_id = db.Column(db.Integer, db.ForeignKey('approval_status.id'))
    current_status = db.relationship('ApprovalStatus')

    def reset_status(self):
        awaiting_response = object_session(self).query(Approvalstatus).get(1)
        self.current_status = awaiting_response
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...