我的模型结构如下:
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)
我想统计每个作者的书籍数量,这很容易实现,我可以这样做:
Author.objects.values('name').annotate(count=Count('book'))
。以下几点比较困难:
- 每位作者所写唯一类别的数量。
- 作者在某个类别中平均写了多少本书。
- (这是一个棘手的问题) 作者在某个类别中发表第一篇和最后一篇著作之间的平均时间间隔。
(我知道这种情况中有一些奇怪的东西,例如作者名字上的唯一约束条件,但这是我找到的最好的例子来说明我的问题。)
请问如何解决这个问题?
谢谢。