Flask SQLAlchemy updated_on - PullRequest
       2

Flask SQLAlchemy updated_on

1 голос
/ 07 января 2020

Я хочу создать поле Datetime, которое будет обновлять текущую дату и время при обновлении строки. Я пробовал это:

updated_on = Column(DateTime, onupdate=db.func.now())

и это:

updated_on = Column(DateTime, server_onupdate=db.func.now())

Но поле обновляется только тогда, когда я добавляю новую строку, а не обновляю ее после обновления. обн:

class UserLog(db.Model):
    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, ForeignKey('user.id'))
    state = Column(String(25))
    created_on = Column(DateTime, server_default=db.func.now())
    updated_on = Column(DateTime, onupdate=datetime.utcnow)

1 Ответ

0 голосов
/ 07 января 2020

Прежде всего, server_onupdate ничего не делает на стороне сервера, и это только там, чтобы SQLAlchemy знал, что сервер «должен» генерировать значение при обновлении. Это действительно вводит в заблуждение. Вы должны вручную настроить базу данных для генерации значения при обновлении. SQLAlchemy не делает это для вас.

Так что используйте onupdate. onupdate=datetime.utcnow. Не забудьте импортировать datetime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...