Менеджер – утилита Django умеющая извлекать записи с базы, посредством QyerySet (выборки объектов).
Наша цель переопределить стандартный менеджер objects,
и написать менеджера извлекающего опубликованные записи.
Мы знаем, что существует стандартный менеджер objects
мы не раз выбирали объекты при помощи стандартного менеджера объектов.
Пример в котором objects - это и есть менеджер.
Post.objects.all()
Мы напишем пользовательский менеджер.
Зачем?
Это удобно, так как нам нужно выбрать только опубликованные записи.
(примечание - я показал пример кода, менеджеров можно писать столько сколько нужно).
После написания проверим.
Обратите внимание на картинку, у меня в админке показано, 1 опубликованная запись и наш написанный менеджер её и выбрал с базы. Всё работает ура!
Проверяем наш менеджер publiched в консоли. В данном случае в админке у меня 1 опубликованный пост, да действительно он и вывелся.
from django.contrib.auth.models import User
from blog.models import Post
pub = Post.publiched.all()
print(pub)
<QuerySet [<Post: Первый пост>]>
Вспомните нам нужны твёрдые знания, а это даёт только осознанное написание кода.
Перейдите в методы выборки Джанго,
и поэксперементируйте в консоли.
Применяйте наш менеджер publiched,
который мы с вами написали, для разных выборок, например:
fff = Post.publiched.filter(title__startswith='Первый')
А потом стандартный менеджер objects (показал в видео),
Post.objects.filter(title__startswith='Первый')
Сразу увидите, что стандартный менеджер objects работает со всеми записями, а написанный нами publiched, только с опубликованными. (Круто).
Теперь использование менеджеров, для ваших личных нужнд, больше не проблема, поздравляю!