djangoは、システムの現在時間とlinuxシステムの現在時間が一致しない問題処理を取得します.

2162 ワード

質問シーン:
django admin modelsエンティティオブジェクトに属性の最終変更時間を追加し、ユーザーが追加、変更するのはシステムが自動的に操作時間を変更することです.
UpdateTimeはシステム時間を自動的に取得し、自動的に変更します.コードは以下のように設定されています.class   User(models.Model):  Name =   models.ForeignKey(HotTag,verbose_name = ' ' ))  Desc =   models.CharField( ' ' , blank = True , max_length = 50 )  CreateTime =   models.DateTimeField( ' ' , default = datetime.now())  UpdateTime =   models.DateTimeField( ' ' ,auto_now = True ,default = datetime.now())
上のコード設定は問題ありません.linuxに完全に移動すると、UpdateTimeとCreateTime(データベースフィールド)の時間とシステム時間が一致しないことがわかります.変更履歴がUpdateTimeである場合でも、時間がシステム時間と一致しない場合でも自動的に変更できます.
問題分析:djangoタイムゾーンと現在のlinuxシステムタイムゾーンが一致しません.
なるほどpyの構成は次のとおりです.# system time zone. TIME_ZONE =   'America/Chicago'
  
「America/Chicago」:アメリカシカゴ時間
処理方法:
もし彼を次のように修正したら:# system time zone. #TIME_ZONE = 'America/Chicago' TIME_ZONE =   ‘Asia / Shanghai’
  
  
Asia/Schanghai(上海時間)
Asia/Beijing(北京時間)
2つのタイムゾーンは一致しています.
djangoプロジェクトを再起動し、バックグラウンドサイトにログインしてユーザーデータを変更すると、時間が一致します.
 
追加内容:
DateField:日付フィールド、adminはテキストボックスでこのフィールドデータ(JavaScriptカレンダーと「Today」ショートカットキーが付いている)を表します.auto_now:オブジェクトが保存されると、自動的にこのフィールドの値を現在の時間に設定します.「last-modified」を表すのによく使用されます.タイムスタンプ;auto_now_add:オブジェクトが最初に作成すると、フィールドの値が自動的に現在の時間に設定.通常、オブジェクトの作成時間を表します.
 
  GMT                (Greenwich Mean Time         ),       .
  gmt-8 +8 , .