DjangoのQuerySetで既存のカラムで足し算引き算してannotateで新しいカラムを生成する

今回はDjangoのQuerySetを使っているときに既に存在するmodelのカラムで足し算引き算をしてannotate関数を使って新しいカラムを生成する方法についてご紹介いたします。



DjangoのQuerySetで既存のカラムで足し算引き算してannotateで新しいカラムを生成する

例えば、DjangoのmodelとしてBookモデルがあり、実用的ではないかもしれませんがBookモデルにint型のpriceと同じくint型のtax_priceというものがあったとします。
このBookモデルのpriceとtax_priceを足したsum_priceというカラムが欲しいとしましょう。

上記の場合、annotate関数とDjangoのF関数を使うことで下記のように取得することが可能です。

F関数は引数にカラム名を設定することによって、DB内の値をDjangoが受け取らずに直接DB内で参照することが可能です。
また、annotate関数を使うことによって、一時的に新たなカラムをQuerySetに付与することができます。

終わりに

今回はDjangoのQuerySetを使っているときに既に存在するmodelのカラムで足し算引き算をしてannotate関数を使って新しいカラムを生成する方法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

直接契約ができるフリーランスエージェント「エンハンス」を立ち上げました。
詳しくは下記LPをご参照ください。
https://enhance.decryption.co.jp/

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Django

Posted by ちこ