Главный менеджер Django

-4

Я использую проект, чтобы узнать о Django Rest Framework, но столкнулся с этим нечетным кодом (для меня).

class AuthorManager(models.Manager):
pass

class Author(models.Model):
objects = AuthorManager()
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)

def __unicode__(self):
return '{} {}'.format(self.first_name, self.last_name)

Я не понимаю цель objects = AuthorManager() и далее, почему мы используем менеджера, который просто выполняет pass. Любая причина для этого?

спросил(а) 2016-06-21T05:27:00+03:00 4 года назад
0
96

Из документации Django:

Менеджер - это интерфейс, посредством которого операции запроса базы данных предоставляются в моделях Django. По крайней мере, один менеджер существует для каждой модели в приложении Django.

Здесь, данный менеджер модели AuthorManager не предоставляет никаких методов, поэтому это не имеет никакого смысла. В будущем, если мы хотим любой метод, мы можем включить. Например, подсчитайте номер имени автора "qarthandso":

class AuthorManager(models.Manager):
def count_qarthandso(self):
super(AuthorManager, self).get_queryset().filter(first_name='qarthandso').count()

и в любом месте, где вы можете использовать:

Author.objects.count_qarthandso()

ответил(а) 2016-06-21T08:32:00+03:00 4 года назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема