4
我有一個這樣的模型結構:複雜的分組和平均在Django
class Author(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
class Book(models.Model):
published = models.DateTimeField()
name = models.CharField(max_length=300, unique=True)
authors = models.ForeignKey(Author)
category = models.ForeignKey(Category)
class Category(models.Model):
name = models.CharField(max_length=100)
我,我想算Books
每位作者。這很容易,因爲我可以這樣做:Author.objects.values('name').annotate(count=Count('book'))
。
我遇到了很多困難的計算這些:
- 數量每位作者的獨特類別。
- 作者在一個類別中書寫的平均書數
- (這是一個難題)作者在一個類別中寫作的第一本和最後一本書之間的平均持續時間。
我不是一個ORM查詢大師,如果我必須解決這個問題,我可能會最終使用很多循環和其他迭代來計算這個,但我知道這不是正確的方法去做這個。
(我知道,一些在這種情況下的東西都是怪異如作者的名字唯一約束,但是這是我發現的,說明我的問題,最好的例子。)
上我怎麼可能任何幫助完成這個?
謝謝。