В SQLAlchemy, как мне создать столбец "date date"?

class Posts(Base):
    __tablename__ = 'posts_posts'
    id = Column(Integer, primary_key = True)
    user_id = Column(Integer, nullable=False)
    body = Column(Text, nullable=True)

    created_at = Column(Date) << is this right?
    updated_at = Column(Date) ??

Мне также хотелось бы, чтобы столбец created_at автоматически установил дату, когда он был создан. А также, столбец updated_at, чтобы установить дату в любое время, когда эта строка будет изменена.

Ответ 1

Вы можете предоставить параметры default и onupdate для Column:

def _get_date():
    return datetime.datetime.now()

class Posts(Base):
    #...
    created_at = Column(Date, default=_get_date)
    updated_at = Column(Date, onupdate=_get_date)

Дополнительную информацию об этом можно найти в документации Column.