質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

1回答

1819閲覧

djangoのmodelで「auto_now_add」が現在時刻になりません

sususu

総合スコア99

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2020/05/13 09:14

編集2020/05/13 14:24

表題の通りなのですが、djangoの「auto_now_add」を使用してデータを入れると現在時刻と違う値が反映してします。
それも「データベース」「テンプレートの表示」それぞれ違う値が表示されてしまいます。
どのように「データベース」「テンプレート」共に「現在時刻」にできますでしょうか。
どなたかご教授頂ければ幸いです。

[現状]
現在時刻   17:48
データース  14:54
テンプレート 23:54

[環境]
centos :7(image)
python :3.6.8
django :3.0.6
docker :19.03.4(docker-for-windows)

※windows10にdocker-for-windowsを使ってcentos7のイメージを使用したコンテナで環境を作っています。

settings.py

# LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'ja' # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Tokyo' USE_I18N = True USE_L10N = True USE_TZ = True

models.py

created_datetime = models.DateTimeField(auto_now_add=True) updated_datetime = models.DateTimeField(auto_now=True)

試したこと
settings.pyの「USE_TZ=False」にしてみる。
コンテナ内のタイムゾーンを「Asia/Tokyo」に変更。

上記を試してみましたが未だに現在時刻にできません。
どなたかご教授頂ければ幸いです。

以上よろしくお願い申し上げます。

下記の通りにUSEをコメントアウトしてみた結果です。

# LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'ja' # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Tokyo' # USE_I18N = True # USE_L10N = True # USE_TZ = True

【実行結果】
実行日時→2020/05/13 22:44
DB→created_datetime: 2020-05-13 04:50:59.527494
テンプレート→5月 13, 2020, 4:50 a.m.

また追記です。
mariaDBの設定に下記を追記しリスタートしましたが、現状なおっておりません。

[mysqld] default-time-zone='Asia/Tokyo'

手順

select * from mysql.time_zone; mysql_tzinfo_to_sql /usr/share/zoneinfo mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root mysql -p vi /etc/my.cnf #------- [mysqld] default-time-zone='Asia/Tokyo'

参考
http://kubotti.hatenablog.com/entry/2018/09/05/185401
https://agohack.com/mysql-change-timezone/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

en-usとUTCはコメントアウトしただけですか?
jaとAsia/Tokyoを残して消してみてください。
今あなたが出しているものを見たところ多分大丈夫だと思います。

投稿2020/05/13 09:39

ForestSeo

総合スコア2720

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sususu

2020/05/13 13:51 編集

いつもご回答ありがとうございます。 2020/05/13 22:44に実行してみましたが結果は下の通りです。 DB→created_datetime: 2020-05-13 04:50:59.527494 テンプレート→5月 13, 2020, 4:50 a.m. # LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'ja' # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Tokyo' # USE_I18N = True # USE_L10N = True # USE_TZ = True 何か消すところを間違えてしまっていますでしょうか? ご教授頂ければ幸いです。 よろしくお願いいたします。
ForestSeo

2020/05/13 20:12

# USE_I18N = True # USE_L10N = True # USE_TZ = True はコメントアウトにしません。 # LANGUAGE_CODE = 'en-us'と # TIME_ZONE = 'UTC'は 消してみてください
sususu

2020/05/14 00:23

ありがとうございます! おかげさまで出来ました。 ご教授頂いた通り下記のように変更いたしました。 【修正後】 LANGUAGE_CODE = 'ja' TIME_ZONE = 'Asia/Tokyo' USE_I18N = True USE_L10N = True USE_TZ = True しかしなぜコメントアウトしているのに下記が影響を及ぼしてしまっているのでしょうか? # LANGUAGE_CODE = 'en-us' # TIME_ZONE = 'UTC'
ForestSeo

2020/05/14 00:29

たまにコメントアウトしても影響する事があります。 私も経験した事がありますし... 理由はわかりませんが、models.pyとかでなぜかコメントアウトしたのに読み込まれた気がします。
sususu

2020/05/14 00:57

勉強になります。 そういうことがあるのですね、とても恐ろしいです。 今後注意してみてみたいと思います。 すいません、あと追加の質問で恐縮なのですが、まだDBの時間が-9時間ずれているのですが、そちらの件について、もしわかればお教え願えませんでしょうか。 詳細も兼ねて載せるのでもう一度質問の方を作成させて頂きます。 とても助かりました!ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問