フィールドルックアップとexclude()
contains、gte、inなどを使ってクエリを実行します
「フィールドルックアップと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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- all()、get()、filter()
- フィールドルックアップとexclude()
- order_by、スライス、遅延評価
- values、values_list、count