Django SQL データベース フィールド名に別名つける F()式
更新日:2021年2月1日Djangoで、データベースのデータを取得して、テンプレートなどでフィールド名を使用する場合、他とあわせるために別名にしたい場合があります。 F()式を使用してフィールド名に別名をつける方法を記載します。
環境:Python3.8.2 Django3.1
F()式を使用してフィールド名に別名つける
記載例
views.py
from django.db.models import F
company = Company.objects.annotate(chairs_needed=F('num_chairs'))
company = Company.objects.annotate(chairs_needed=F('num_chairs'))
上記の記載で、Companyモデルのフィールド【num_chairs】に別名【chairs_needed】をつけて
テンプレートファイルなどで chairs_needed でデータを使用する事ができます。
他にF()式を使用する例として、使用しているDBによってNULLのソート順の最初か最後かを変更したい場合、
nulls_last=Trueまたはnulls_first=Trueで変更できます。
記載例
views.py
from django.db.models import F
Company.object.order_by(F('last_contacted').desc(nulls_last=True))
Company.object.order_by(F('last_contacted').desc(nulls_last=True))
その他 F()式について、詳細は公式ドキュメントに記載されています。
公式ドキュメントの説明クエリー式
以上。