Django Academy · Lekcja

Wyszukiwanie po polach i exclude()

Tworzyć zapytania z użyciem contains, gte, in i innych lookupów

Lekcja 2 z 413 kroki

Wyszukiwanie po polach i exclude() to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.

Poza równością

Zwykłe filtry sprawdzają równość, ale rzeczywiste zapytania wymagają zakresów i dopasowywania tekstu. Field lookups zapewniają te dodatkowe możliwości.

Podwójne podkreślenie

Lookup składa się z nazwy pola, podwójnego podkreślenia, a następnie operatora. Ta niewielka składnia pozwala Django odczytywać bardziej rozbudowane warunki.

Book.objects.filter(year__gte=2020)

Większe i mniejsze wartości

Użyj gt, gte, lt i lte dla zakresów liczbowych lub dat. Odpowiadają one bezpośrednio operatorom porównania SQL.

Book.objects.filter(price__lt=20)

Wyszukuj wewnątrz tekstu

Lookup contains wyszukuje wiersze, w których pole zawiera podany przez Ciebie fragment tekstu w dowolnym miejscu. Świetnie nadaje się do prostego wyszukiwania.

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

Ignoruj wielkość liter

Dodaj i do wyszukiwania tekstu bez uwzględniania wielkości liter, na przykład icontains lub iexact, aby wielkie litery nigdy nie uniemożliwiły dopasowania.

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

Początki i końce

Dopasowuj początki i końce ciągu znaków za pomocą startswith i endswith. Oba mają także odpowiedniki nieuwzględniające wielkości liter.

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

Dopasowywanie zbioru wartości

Lookup in zachowuje wiersze, których wartość znajduje się na przekazanej liście. Jest to bardziej przejrzyste niż łączenie wielu warunków OR.

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

Sprawdzanie pustych wartości

Użyj isnull, aby znaleźć wiersze, w których kolumna ma wartość NULL, albo ustaw je na False, aby znaleźć wiersze zawierające wartość.

Book.objects.filter(summary__isnull=True)

Odwracanie logiki

Czasami potrzebujesz wszystkich wyników oprócz dopasowanych. exclude() zwraca wiersze, które NIE spełniają warunku.

Book.objects.exclude(published=True)

Lookupy działają także w exclude

Każdy lookup pola działający w filter działa również w exclude(). Jedyna różnica polega na odwróceniu wyniku.

Book.objects.exclude(year__gte=2020)

Łączenie filter i exclude

Łącz je, aby zachować jedną grupę i odrzucić inną. Każde wywołanie dodatkowo zawęża ten sam leniwy QuerySet.

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

Szybkie sprawdzenie

Chcesz znaleźć książki, których tytuł zawiera „django” niezależnie od wielkości liter. Który lookup będzie odpowiedni?

Podsumowanie

Świetnie! Lookupy pól używają podwójnego podkreślenia dla zakresów i tekstu, a exclude() odwraca dowolny warunek. 🔍

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Wyszukiwanie po polach i exclude()” jest bezpłatna?

Tak — pełny tekst „Wyszukiwanie po polach i exclude()” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Wyszukiwanie po polach i exclude()”?

Tworzyć zapytania z użyciem contains, gte, in i innych lookupów Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Django Academy?

Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Wyszukiwanie po polach i exclude()”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?

Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. all(), get() i filter()
  2. Wyszukiwanie po polach i exclude()
  3. order_by, wycinanie i leniwa ewaluacja
  4. values, values_list i count
← Powrót do Django Academy