この記事について
自分が普段使っているようなパッケージやコマンドのメモです。
パッケージ
共通
pip install django django-cors-headers django-debug-toolbar django-filter djangorestframework djangorestframework-camel-case drf-yasg
プロダクション
pip install gunicorn django-storages
django-storages は Google Cloud Storage だと バグってしまい CSS などの path がちゃんと表現されないので https://github.com/gregmccoy/django-storages
を使っている。( 現在は不明 )
インストール方法は pip install git+https://github.com/gregmccoy/django-storages --upgrade
。
小技
Django Admin User
- manage.py でスーパーユーザー作る
-
python3 manage.py dumpdata auth.User --indent 4 > app/fixtures/initial_data.json
でプロジェクト作成時にできるアプリケーションのディレクトリにフィクスチャを入れる - 読み込みは
python manage.py loaddata ./app/fixtures/initial_data.json
で行う(スーパーユーザーは明示的に fixture ファイルを指定する)
receiver
-
Model.objects.filter(col=col).update(col=col)
でモデルを更新するとpost_save
シグナルを発信しない
便利なパッケージ
django-cleanup
django-cleanup は pip で入れて INSTALLED_APPS に追記するだけで ImageField 等で登録したファイルで不要なものは自動的に削除される
django-mptt
django-mptt は木構造(カテゴリーなど)を表現したい時に便利
django-channels
django-channels は websocket を利用できるようにする。ただし本番で使うには uwsgi とかむずそう…。
graphene-django
graphene-django は GraphQL を利用できるようにする。ただし n + 1
問題を解決してなさそう。
django-constance
django-constance は動的に共通の設定を持ちたいときに使えそう。ただし DB や redis で管理されるので git 管理できない点は注意。