Vấn đề này đã xảy ra trong và tắt trong một vài tuần nay, và nó không giống như bất kỳ mà đã đưa ra dự án của tôi.Django default = timezone.now() lưu hồ sơ bằng cách sử dụng "cũ" thời gian
Hai trong số các mô hình được sử dụng có trường dấu thời gian, theo mặc định được đặt là timezone.now()
.
Đây là chuỗi làm tăng cờ lỗi:
mẫu một được tạo ra lúc 07:30
Mẫu hai được tạo ra lúc 22:00, nhưng trong cơ sở dữ liệu MySQL được lưu trữ lúc 7:30 tối!
Mỗi mô hình được tạo có tem thời gian của mình lưu dưới 19:30, không phải là thời gian thực tế, cho đến một thời gian nhất định đi. Sau đó một thời gian mới được thiết lập và tất cả các mô hình sau có thời gian mới ... Bizzare
Một số chi tiết phụ trợ có thể giúp đỡ trong việc khám phá ra vấn đề:
tôi có một loạt các phương pháp mà tôi sử dụng để dải thời gian của tôi của tzinfo
của họ và thay thế chúng bằng UTC.
Điều này là do tôi đang thực hiện phép tính timezone.now() - creationTime
để tạo: "mô hình đã được đăng từ lâu" tính năng trong dự án. Tuy nhiên, điều này thực sự không phải là nguyên nhân của vấn đề.
Tôi không nghĩ rằng việc sử dụng datetime.datetime.now()
cũng sẽ tạo ra bất kỳ sự khác biệt nào.
Dù sao, cảm ơn sự giúp đỡ!
Tôi đặt cược vấn đề "được sửa" cho bản ghi đầu tiên * sau * quá trình máy chủ khởi động lại (và có lẽ chỉ/tất cả các bản ghi mới được chèn vào cùng một phút của khởi động lại máy chủ). Vui lòng hiển thị mã sử dụng/bộ/thiết lập giá trị mặc định này. Tôi nghi ngờ rằng nó chỉ được đánh giá * một lần * (khi bản ghi đầu tiên được tạo) và không được cập nhật cho các bản ghi tiếp theo. –
Dự đoán của bạn là chính xác! Điều gì làm cho bạn nghĩ điều này và tại sao nó sẽ xảy ra? –