Django, какая функция принадлежит QuerySet и Manager?

Раньше я думал, что метод QuerySet возвращает экземпляры QuerySet, но, по-видимому, это не так.

Например, count() — это метод набора запросов, а не менеджер.

Как решить, какие функции относятся к пользовательскому QuerySet, а какие — к пользовательскому классу Manager?


person eugene    schedule 15.05.2016    source источник


Ответы (1)


Имеет смысл иметь доступ к некоторым функциям, таким как count(), в менеджере и в наборе запросов. Это позволяет вам делать:

Blog.objects.count()  # total number of blogs
Blog.objects.filter(status='PUBLISHED').count()  # Number of published blogs

В Django есть метод as_manager< /a>, который позволяет вам создать менеджер из пользовательского набора запросов. Это означает, что вам не нужно дублировать свои методы в менеджере и наборе запросов.

person Alasdair    schedule 15.05.2016