Wyszukiwanie po polach i exclude()
Tworzyć zapytania z użyciem contains, gte, in i innych lookupów
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. 🔍
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
- all(), get() i filter()
- Wyszukiwanie po polach i exclude()
- order_by, wycinanie i leniwa ewaluacja
- values, values_list i count