2013-02-28 22 views
8

Trong Django, chúng ta có thể sử dụng các thông số 2 khi thực hiện một cột date:Tương đương với auto_now của Django, auto_now_add trong SQLAlchemy là gì?

DateField.auto_now Tự động thiết lập các lĩnh vực đến nay mỗi khi đối tượng được lưu. Hữu ích cho dấu thời gian "được sửa đổi lần cuối". Lưu ý rằng ngày hiện tại luôn được sử dụng; đó không chỉ là giá trị mặc định mà bạn có thể ghi đè.

DateField.auto_now_add Tự động đặt trường thành bây giờ khi đối tượng được tạo lần đầu tiên. Hữu ích cho việc tạo dấu thời gian. Lưu ý rằng ngày hiện tại luôn được sử dụng; đó không chỉ là giá trị mặc định mà bạn có thể ghi đè.

Làm cách nào để thực hiện điều này trong SQLAlchemy?

Trả lời

18

Cuối cùng, tôi kiểm tra doc SQLAlchemy, điều này nên đường đi:

Column('created_on', DateTime, default=datetime.datetime.now) 

Column('last_updated', DateTime, onupdate=datetime.datetime.now) 

doc ở đây:

http://docs.sqlalchemy.org/en/latest/core/schema.html#python-executed-functions

+0

Tốt find. Tôi cũng khuyên bạn nên tạo liên kết đến nơi trong tài liệu mà bạn tìm thấy. –

+0

@MarkHildreth Đúng vậy. Đã thêm liên kết. – zchenah

+1

Thực ra điều này không hoàn toàn chính xác. Để bắt chước Django, trường 'last_updated' phải là' Cột ('last_updated', DateTime, mặc định = datetime.now(), onupdate = datetime.now()) '- khi Django đặt' trường tự động' thành 'now' khi tạo . – samuraisam

Các vấn đề liên quan