這是我遇到的一個小問題。Django聚合和分組:代碼清潔問題
3個非常簡單的模型:
>>> class Instrument(models.Model):
... name = models.CharField(max_length=100)
...
>>> class Musician(models.Model):
... instrument = models.ForeignKey(Instrument)
...
>>> class Song(models.Model):
... author = models.ForeignKey(Musician)
我想計數的歌曲數量,由儀器名稱和作者分組
我必須把它的解決方案,但我想知道在純django-orm中編寫它的最佳方式是什麼,例如代碼將是乾淨,簡潔和可重用的(我指的是可以使用的東西輕鬆重複使用以按不同屬性分組)。什麼其實我想看到的是,如果一些代碼,我已經寫了一般性地解決這個問題是非常有用的,或者如果我只是錯過了一些東西大...
這裏的第一個解決方案,我認爲:
results = []
for instrument_name in Instrument.objects.values_list('instrument', flat=True):
for musician in Musician.objects.filter(instrument__name=instrument_name):
results.append((
instrument_name,
musician,
Song.objects.filter(author=musician).count())
)
謝謝你的幫助!
爲什麼是-1?我違反了規則嗎? – sebpiq 2010-07-25 22:58:57
我沒有給你-1,但我建議把它寫成「我試圖做X,但不知道如何 - 你能幫忙嗎?」而不是作爲一系列規則的挑戰。你在尋求幫助,而不是進行代碼競爭。 – 2010-07-25 23:22:00
當然......但另一方面,我知道我的問題的答案!我真正想知道的是,用純粹的django-orm解決這個問題的最好方法是什麼......也許我應該寫這個! – sebpiq 2010-07-25 23:27:35