2016-05-15 7 views
0

Ich dachte, dass QuerySet-Methode QuerySet-Instanzen zurückgeben, aber es anscheinend nicht.Django, welche Funktion gehört zu QuerySet und Manager?

Zum Beispiel zählen() ist eine Methode queryset nicht Manager

Wie kann ich entscheiden, welche Funktionen gehen, um benutzerdefinierte QuerySet und welche gehen, um benutzerdefinierte Klasse Manager?

Antwort

0

Es ist sinnvoll, einige Funktionen wie count() auf dem Manager und das Abfrage-Set zugreifen zu können. Auf diese Weise können Sie tun:

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

Django hat eine Methode as_manager, die Sie einen Manager aus einem benutzerdefinierten queryset erstellen können. Dies bedeutet, dass Sie Ihre Methoden nicht auf dem Manager und dem Abfrage-Set duplizieren müssen.