2023-05

django

【Django】CharFieldのmaxlengthを変更する

Django の CharField の max_length (min_length) の設定値 fields や base_fields で参照することで変更できますが、バリデーションや HTML で出力したときの maxlength ...
django

【Django】model で抽象メソッドを定義する

Django で抽象メソッドを定義した抽象 model を作成する方法について説明します。 meta - abstract Django の model では以下のように abstract を設定することができます。 # models.py...
django

【Django】bulk 処理では save メソッドが実行されない

Django の bulk 処理 (bulk_create, bulk_update) では save メソッドが実行されません。 そのため、DateTimeField の auto_now など save で行っている自動更新処理は実行さ...
django

【Django】form の field について

Django の form で 自身のフィールドを参照する方法には fields と base_fields の2種類があります。 その使い分けについて説明します。 実体験と調べた内容からの理解となります。厳密なところでは認識誤りがあるかも...
python

【Python】フォーマッター (black) で差分が出た

vscode で python の開発をしていますが、自動フォーマットで black を使っています。 新しい開発環境を作った際、既存のソースをそのまま保存したとき差分が大量出てきて原因の特定に苦労したことがあったのでその内容を備忘録として...
django

【Django】migration 実行時のテーブルのカラムの順番について

Django では model から migration したテーブルを見るとカラムが model の定義順に並んでいないことがあります。 テーブル定義書があるならその順番になっていて欲しいし、データを確認する上でもカラムの並び順は大切です...
flutter

【Flutter】file_picker ではファイル名でキャッシュされる

Flutter の file_picker ( を使用した際に、選択したファイルと異なるファイルが選択された不具合が発生したので紹介します。 file_picker のキャッシュ処理の仕様と特定の端末の仕様の合わせ技による不具合で原因の特定...
django

【Django】IPアドレスを取得する

Django でリクエストのあったクライアントのIPアドレスを取得する方法の紹介です。 リバースプロキシも対応しています。 IPアドレスを取得 def get_client_ip(cls, request): if not request ...
django

【Django】テーブル更新時にユーザーIDを自動で保存する

テーブル定義に作成者や更新者のフィールドを持つことがあると思います。 データの追加、更新時に毎回更新する必要があり、処理を実装するたびに毎回記述するのはコストが掛かる点と実装漏れ等の観点から処理を統一することが望まれます。 そのため、 Dj...
django

【Django】テーブル更新時に日時を自動で保存する

テーブル定義に作成日時や更新日時のフィールドを持つことがあると思います。 データの追加、更新時に毎回更新する必要があり、処理を実装するたびに毎回記述するのはコストが掛かる点と実装漏れ等の観点から処理を統一することが望まれます。 そのため、 ...