all(), get() и filter()
Основные способы получения объектов
«all(), get() и filter()» — бесплатный урок Django Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Django Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Django Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Meet the Manager
Every model gives you a free objects manager. It is your front door to the database, and every query you write starts from it. 🚪
Book.objectsGrab Everything
Call all() to ask for every row in the table. You get back a QuerySet you can loop over, count, or refine further.
books = Book.objects.all()A QuerySet Is Not a List
A QuerySet looks list-like but it is lazy. Django waits to hit the database until you actually use the results.
Fetch Exactly One
Use get() when you expect a single matching row, like one record found by its primary key.
book = Book.objects.get(pk=1)When get() Fails
get() is strict. If nothing matches it raises DoesNotExist, so reach for it only when you are sure one row exists.
Book.objects.get(pk=999)Too Many Matches
If get() finds more than one row, it raises MultipleObjectsReturned. It truly means one and only one.
Filter for a Subset
Reach for filter() when you want the rows that match a condition. It returns a QuerySet, even if only one row matches.
Book.objects.filter(published=True)Filter Returns Zero or More
Unlike get(), filter() never raises when nothing matches. You simply get an empty QuerySet back instead of an error.
Book.objects.filter(author="Nobody")Multiple Conditions
Pass several keyword arguments to filter() and Django joins them with AND. Every condition must be true.
Book.objects.filter(published=True, year=2024)get vs filter at a Glance
Use get() for one guaranteed object and filter() for a collection. That single choice avoids most beginner query bugs.
Chain Your Filters
Because filter() returns a QuerySet, you can chain calls to narrow results step by step before the database is touched.
Book.objects.filter(published=True).filter(year=2024)Quick Check
You expect a single book and there is no match. Which call raises an error?
Recap
Nice work! all() grabs everything, get() fetches one exact row, and filter() returns a subset you can chain. 🎉
Часто задаваемые вопросы
Урок «all(), get() и filter()» бесплатный?
Да — полный текст урока «all(), get() и filter()» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Django Academy, подпишись на CoddyKit PRO. Курс Django Academy содержит 4 уроков всего.
Чему я научусь в уроке «all(), get() и filter()»?
Основные способы получения объектов Ты практикуешь Django Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Django Academy?
Предыдущий опыт не требуется. Django Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «all(), get() и filter()»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Django Academy?
Да. Каждый урок Django Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- all(), get() и filter()
- Поиск по полям и exclude()
- order_by, срезы и ленивая обработка
- values, values_list и count