私は次のモデルコードを持っています:
from django.db import models
from categories.models import Category
class MusicManager(models.Manager):
def get_query_set(self):
return super(MusicManager, self).get_query_set().filter(category='Music')
def count_music(self):
return self.all().count()
class SportManager(models.Manager):
def get_query_set(self):
return super(MusicManager, self).get_query_set().filter(category='Sport')
class Event(models.Model):
title = models.CharField(max_length=120)
category = models.ForeignKey(Category)
objects = models.Manager()
music = MusicManager()
sport = SportManager()
MusicManager() と SportManager() を登録することで、Event.music.all() と Event.sport.all() クエリを呼び出すことができます。しかし、どうすれば Event.music.count() を作成できますか? MusicManager の count_music() 関数で self.all() を呼び出して、「Music」カテゴリの要素のみをクエリする必要がありますか?それとも、最初にカテゴリを検索する際にそれらをフィルタリングする必要がありますか?