tips
Djangoでマイグレーションした時、『Auto-created primary key used when not defining a primary key type』と警告される場合の対策
マイグレーションした時、下記のようなエラーが出る。 これは主キーを定義せず、自動的に作っているからである。 対策は下記をsettings.pyに追加するだけ。 DEFAULT_AUTO_FIELD='django.db.models.AutoField' 結論 主キーをUUIDにしている場合、発生しない警告文である。 Django-allauth等のDjango用のライブラリを使っている場合も、ライブラリの中にモデルが埋まっており、対策をしない限り、このような警告文が出る。 参照元 https://stackoverflow.com/questions/66971594/auto-create-primary-key-used-when-not-defining-a-primary-key-type-warning-in-dja ...Djangoで主キーのリスト型を作り、合致するレコードを検索する【values_list + filter】
例えば、複数のレコードのIDを検索して削除したい場合、下記のように記述する。 result = Topic.objects.filter(id__in=[1,2,3]) print(result) #idが1,2,3のデータが表示される。 これがリスト型のIDを使用したIN句である。 ちなみに、検索結果からIDのリストを作るには、下記のようにする。 result = list(Topic.objects.all().values_list("id",flat=True)) print(result) #[1, 2, 3, 4, 5, 6, 7, 8] idだけカラムを指定し、flat=Trueとすることで数値型のリストを作ることができる。 参照元 https://docs.djangoproject.com/en/3.2/ref/models/querysets/#in https://docs.djangoproject.com/en/3.2/ref/models/querysets/#values-list ...Pythonの角括弧と丸括弧の違い、丸括弧を使う場合の注意点【()と[]、タプル型とリスト型】
【Django】カスタムユーザーモデルでユーザーブロック機能を実装させる【ManyToManyFieldでユーザーモデル自身を指定】
【django】ManyToManyFieldでフィールドオプションthroughを指定、中間テーブルを詳細に定義する【登録日時など】
Djangoの管理サイト(admin)をカスタムする【全件表示、全フィールド表示、並び替え、画像表示、検索など】
【django.core.paginator】一度に2ページ以上ジャンプできるように改良する【inclusion_tag()】
- 作成日時:
- 最終更新日時:
- Categories: サーバーサイド
- Tags: django tips カスタムテンプレートタグ
Djangoでviews.pyからmodels.pyのフィールドオプションを参照する【verbose_name,upload_to】
Djangoでmakemigrationsコマンドを実行しても、No changes detectedと言われる場合の対処法
Djangoでマイグレーションファイルを作る python3 manage.py makemigrations このコマンドを実行しても返ってくるのが、 No changes detected とされ、マイグレーションファイルが作られないことがある。当然この状態でmigrateコマンドを打ってもDBには反映されない。 そこで、本記事ではこの対処法について列挙する。 対処法1:settings.pyのINSTALLED_APPSに対象のアプリを追加 python3 manage.py makemigrations python3 manage.py migrate この2つのコマンドを打って、models ...