- Атрибут класса модели (по умолчанию
objects
), предоставляющий интерфейс для запросов к базе данных (Model.objects.all()
). - Стандартный менеджер:
models.Manager()
- Пользовательские менеджеры: Позволяют добавить собственные методы для запросов или изменить стандартный
QuerySet
.# models.py class PublishedManager(models.Manager): def get_queryset(self): # Возвращает только опубликованные записи return super().get_queryset().filter(is_published=True) def get_by_natural_key(self, slug): # Пример своего метода return self.get(slug=slug) class Post(models.Model): title = models.CharField(max_length=200) slug = models.SlugField(unique=True) is_published = models.BooleanField(default=False) # ... другие поля ... objects = models.Manager() # Оставляем стандартный менеджер published = PublishedManager() # Добавляем пользовательский # Использование: all_posts = Post.objects.all() published_posts = Post.published.all() specific_post = Post.published.get_by_natural_key('my-post-slug')
- Если создается пользовательский менеджер, стандартный
objects
перестает быть доступным автоматически, его нужно объявить явно, если он нужен.
- Если создается пользовательский менеджер, стандартный
〰〰〰 𓆝 𓆟 𓆞 𓆝 𓆟 𓆝 𓆟 𓆞 〰〰〰