Django Academy · レッスン

フィールドルックアップとexclude()

contains、gte、inなどを使ってクエリを実行します

レッスン 2/413 ステップ

「フィールドルックアップとexclude()」はCoddyKit上の無料Django Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDjango Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Django Academyコースには全4レッスンが含まれています。

等価比較を超えて

通常のフィルターは等価比較を行いますが、実際のクエリでは範囲やテキストの一致も必要です。Field lookupsを使うと、さらに高度な検索ができます。

ダブルアンダースコア

Lookupは、フィールド名、ダブルアンダースコア、演算子の順で構成されます。この小さな構文によって、Djangoはより複雑な条件を解釈できます。

Book.objects.filter(year__gte=2020)

より大きい、より小さい

数値や日付の範囲には、gt、gte、lt、lteを使います。これらはSQLの比較演算子にそのまま対応します。

Book.objects.filter(price__lt=20)

テキスト内を検索する

contains lookupは、フィールドのどこかに指定した部分文字列を含む行を見つけます。簡単な検索に便利です。

Book.objects.filter(title__contains="Python")

大文字と小文字を区別しない

iを付けると、icontains や iexact のような大文字と小文字を区別しないテキスト検索になり、大文字・小文字の違いで一致しなくなることがありません。

Book.objects.filter(title__icontains="python")

開始と終了

startswithとendswithを使って、文字列の先頭や末尾に一致させます。どちらにも大文字と小文字を区別しない形式があります。

Book.objects.filter(title__startswith="The")

値の集合に一致させる

inルックアップを使うと、渡したリスト内に値が含まれる行だけを残せます。多数の OR 条件をつなげるよりもすっきり書けます。

Book.objects.filter(year__in=[2022, 2023, 2024])

空の値を確認する

isnullを使うと、列が NULL の行を見つけられます。False を設定すれば、値が入っている行を見つけられます。

Book.objects.filter(summary__isnull=True)

条件を反転する

一致するもの以外をすべて取得したい場合があります。exclude()は、条件を満たさない行を返します。

Book.objects.exclude(published=True)

exclude でもルックアップを使う

filter で使えるフィールドルックアップは、exclude()でもすべて使えます。違いは、結果が反転することだけです。

Book.objects.exclude(year__gte=2020)

filter と exclude を組み合わせる

両方をつなげると、一方のグループを残し、もう一方を除外できます。各呼び出しによって、同じ遅延 QuerySet がさらに絞り込まれます。

Book.objects.filter(published=True).exclude(price__gt=50)

クイックチェック

大文字・小文字に関係なく、タイトルに "django" を含む本が必要です。どのルックアップが適していますか?

まとめ

レベルアップしました!フィールドルックアップでは、範囲やテキストの指定に二重アンダースコアを使い、exclude()で任意の条件を反転できます。🔍

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「フィールドルックアップとexclude()」レッスンは無料ですか?

はい。「フィールドルックアップとexclude()」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Django Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Django Academyコースには全4レッスンが含まれています。

「フィールドルックアップとexclude()」で何を学びますか?

contains、gte、inなどを使ってクエリを実行します ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Django Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDjango Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「フィールドルックアップとexclude()」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDjango Academyレッスンでコードを書いて実行できますか?

はい。すべてのDjango Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. all()、get()、filter()
  2. フィールドルックアップとexclude()
  3. order_by、スライス、遅延評価
  4. values、values_list、count
← Django Academyに戻る