TORICOインターン生のブログです。会社で起きたことについて情報発信していきます。

インターン16〜18日目

インターン18日目を終えました、清瀬です。

16日目からの3日間、DjangoのSerializer をつくっていたので学んだことを軽くまとめようと思います。

DjangoにはSQLを書かなくてもすむように、ObjectManagerというものが用意されています。

そのため簡単な処理はSQLを書くことなくDBをいじれるのですが、単純な処理に限られてしまいます。

そこで直接SQLを実行できるように、いくつかのメソッドが用意されています。

その一つがextra関数です。

extra(select=None, where=None, params=None, tables=None, order_by=None, select_params=None)

個人的にはまったのが、whereです。

tablesで別のテーブルを参照できるようになるのですが、

whereの引数に

1. 二つのテーブルを関連させる条件を書く( SQLでのON句のようなもの)

2. 絞り込みのためにつかつ(SQLでのWHERE句)

この二つのどちらになるのかが分からずに物凄い時間を費やしたのですが、

結論はなんと両方OKなんだそうです。

個人的には、どうして両方OKなのかがいまいちピンときていません。

もしかしたらSQLの理解不足かもしれないので、時間があるときに調べてみたいなと思います。

現在の評価: 4

コメント

コメントを投稿
コメントするには TORICO-ID にログインしてください。
ログイン コメント利用規約