Django

DjangoのSECRET_KEY_FALLBACKSを使ってSECRET_KEYをローテーションする

Djangoの小ネタです。 SECRET_KEY に入れた値などを変更したい場合、素直に SECRET_KEY の値を差し替えてしまうとユーザのログイン情報やセッションの値がクリアされてしまい、利用するユーザに影響が出てしまいます。 この対応として Django 4.1 から setti…

再考 Choose boring Technology

Shima Tech Hub #15 - connpass でLTするつもりが、急な予定でできなくなったのでその供養として書きます。 Choose boring Technology とは mcfunley.com boringtechnology.club Dan McKinley さんが 2015年に書いた内容です。自身のEtsyでの経験を元に、(…

django-import-exportでリレーションモデルのフィールドが管理画面上のインポートプレビュー画面に表示されない

発生したこと django-import-export で、対象のモデル( Example ) に関連付けに必要な列( hoge_id )がプレビューで表示されていない問題がありました。 原因 hoge_id は、対象モデルがもつ実際のフィールドではなく、インポート処理でのみ使用するフィール…

django-fastdevを使ってDjangoの開発体験を向上させよう

github.com django-fastdev というPyPIパッケージが良かったので紹介します。 django-fastdev とは パッケージの名前のとおり、Djangoの開発を手助けするライブラリです。 主に開発時のデバッグを楽にするための機能がいろいろあります。 使い方は INSTALLED…

Django 6.0 に追加される機能からみる、Djangoのコア機能への考え方

Django 6.x Streering Council の一人である Carlton Gibsonさんが Django 6.0 への機能についてブログを書いていました Looking forward to Django 6.0 • Buttondown Django 6.0のアルファ版リリースは 2025-09-17 を予定しています Django 6.0 に追加され…

Djangoの署名付きCookieをテストする方法

この記事のDjangoのバージョンは4.2になります。 署名付きCookieの設定 Djangoで署名付きCookieをセットする際は、set_signed_cookieメソッドを使用します。 from django.http import HttpResponse def my_view(request): response = HttpResponse("Hello, W…

uvのおかげでdjangoの関連パッケージにプルリクエストを送りやすくなった

最近はDjangoに新しいバージョンが出ると、その対応ができていることを示すプルリクエストを作成しています。高速なPythonパッケージマネージャであるuvを使うことで、このプロセスがとても簡単になりました。 2024年の例として、django-storages に Django …

django-rules:has_permの罠とその解決策

TL;DR Djangoの権限管理ライブラリである、django-rulesはインスタンス同士で権限管理できる django-rulesの機能として、Djangoに内蔵されている権限と認可機能との統合がある この統合機能により has_perm を使うとインスタンス同士の比較だけでなくデータ…

DjangoでCBVを使っていない

CBVとは Class-based Viewのことで、Viewに関するクラスがDjangoにはあり、それを継承して書いていくやり方です。 docs.djangoproject.com 一覧を表示するためのListView、詳細画面のDetailViewなどWebアプリケーションでよく使うパターンが、クラスとして提…

私のDjango情報収集 2024

django.connpass.com に発表者として参加しました。いつもより1時間早く開始時間を調整してくださったりありがとうございました。 発表した内容 kimihito.hatenablog.com をベースに発表しました。この記事は2023年時点で、そこからいくつかアップデートした…

django-import-exportでインポート、エクスポートの権限を付与する

やりたいこと Djangoでインポート、エクスポートを実行できるようにする https://github.com/django-import-export/django-import-export において、特定ユーザーにのみ、インポートエクスポート機能を公開したい。 例として今回エクスポートしたいモデルは…

jefftriplett/django-startprojectをDjangoのプロジェクトテンプレートとして使っている

表題以上の情報はありませんが 最近新しいプロジェクトを使うときに django-admin startproject --template の指定先で github.com を使っています。 好きなところ ミニマムで最低限必要な部分だけ入っているところ(CSSやJavaScriptのフレームワークが入っ…

私のDjango情報収集

ここ2~3年ぐらいはPythonのフレームワークであるDjangoでのWebアプリケーション開発を行っています。 Djangoでの開発は今回がはじめてで、これまではRuby on Rails(Rails)を使って開発していました。 自分なりに試行錯誤する中で、いくつかアクセスする情…