Django DateTimeFieldで格納したデータをVeiwで文字列に変換すると時間がずれる
Django DateTimeFieldで格納したデータを
template側では、settingで指定した
タイムゾーンで表示されるが
Veiwで文字列に変換すると、時間がずれる
例
timedataにデータを読み込み、文字列に変換
strtimedata=timedata.strftime(“%H:%M”)
すると
9時間ずれる
astimezone(tz=None)
とすることで、解決した
strtimedata=timedata.astimezone(tz=None).strftime(“%H:%M”)
参考
https://qiita.com/popsuzuki/items/fea7c6639c5079a6408a
ImportError at /admin cannot import name ‘path’ from ‘django.urls’ (/home
Django 1.11.xx
から
Django 2.xx
に切り替えようとしたら
ImportError at /admin cannot import name ‘path’ from ‘django.urls’ (/home
とういエラーがでた
urlpatterns = [
url(r’^admin/’, admin.site.urls),
から、
urlpatterns = [
path(‘admin/’, admin.site.urls),
変更により、エラーが発生しています。
つまり、
Django 2.xx
の書式で、作成されているかれど
Djangoを読み込んでいるのが、古いDjango 1.11.xx
のPathになっていました。
パッケージの読み込みPathを正しくした所
解消しました。
DjangoでTempleteを読み込まない「TemplateDoesNotExist at」
settings.py
の
TEMPLATES = [
に
‘django.template.context_processors.static’, ##
を、追加で解決
TEMPLATES = [
{
:
:
:
‘django.contrib.auth.context_processors.auth’,
‘django.contrib.messages.context_processors.messages’,
‘django.template.context_processors.static’, ## ここを追加
],
},
},
]
ただし、厄介なのは、
一度、テンプレートを読み込めると
TEMPLATES = [
から
‘django.template.context_processors.static’, ## ここを追加
を、削除しても、読み込んでくれる。
読み込んだ実績を内部で管理しているのだろうか。
色々な所を、修正して、根本原因を整理したいような時
不具合の検証ができないため、苦労する。
./manage.py runserver
を、再起動しても再現しない
./manage.py makemigrations
./manage.py migrate
しなおしても再現しない
一度、dbを削除(db.sqlite3)して
./manage.py makemigrations
./manage.py migrate
しなおしても再現しない
設定後、戻す事はないかと思うが
別の所で、現象が出た時、元に戻してしまうと注意が必要。。
sublimeTextのメニューが急に中国語に
UbuntuにsublimeTextをインストールして
日本語へ設定して使っていたら、
急に、メニューが中国語に変わってしまった。
少しの間は、我慢して使っていたが
やはり使い難いので、調べた所
どうにか日本語になった。
メニューのヘルプ(H)の一番下の
LanguageからJapaneseを
選択したら、元にもどった。
どのタイミングで、不具合になったかは謎である。
今後の動きを観察してみたいと思う。
Djangoで画像ファイルを扱う「ModuleNotFoundError: No module named ‘PIL’」
Python 3.7
にて、画像を扱おうとして
from PIL import Image
とした所
ModuleNotFoundError: No module named ‘PIL’
というエラーになった
$pip install pillow
で、解決した。
Ubuntu で、python仮想環境にDjangoをインストール
Djangoは、バージョンにより
Pythonのバージンが関係するので、
少々厄介のよう
一度、構築できてしまえば、後は問題ないのですが。
Django1.11をインストールするために仮想環境を構築
何回か、エラーのなったので整理しておく
バージンを調べる
python -V
Python 3.6.3
3.6のよう
色々試したいので、仮想環境を構築したい
python3.6 -m venv env
エラーになり
apt-get install python3-venv
とのアドバイス
sudo apt-get install python3-venv
E: パッケージ python3-venv が見つかりません
パッケージがないというエラー
3.6が入っているからとりあえず作ってみる
python3.6 -m venv –without-pip env
作れた。
source env/bin/activate
pip install -U pip
エラーになる
とりあえず、入れてみる
pip install django==1.11.17
インストールできたみたい
走らすと、エラー
equirement already satisfied: django==1.11.17 in /usr/local/pyenv/versions/3.4.7/lib/python3.4/site-packages (1.11.17)
3.4の所入っている?
3.4.7じゃだめだよね
python -m django –version
/env/bin/python: No module named django
認識していない
deactivate
ちゃんといれないとだめみたい
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
#sudo apt-get install python3.6
sudo apt-get install python3.6-venv
インストールできた
python3.6 -m venv env
source env/bin/activate
pip install -U pip
pip install django==1.11.17
python -m django –version
今度は認識できた。
上手く走った。
はじめから
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt-get install python3.6
sudo apt-get install python3.6-venv
として置けばよさそう。
あとは、
python3.6 -m venv env
source env/bin/activate
pip install -U pip
pip install django==1.11.17
できてしまうと、なんでもないことなんですが。