У меня есть список объектов Book в Django, и я хочу, чтобы пользователи-администраторы могли сортировать их по количеству вложенных переходов за последние три года.
Я уже могу сделать это для количества объектов транзакций за все время , используя annotate
и менеджер моделей, как показано ниже:
class Book(models.Model):
title = models.CharField(max_length=400)
def count(self):
return self.transactioncount/2
count.admin_order_field = 'count'
class Transaction(models.Model):
book = models.ForeignKey(Book)
transaction_date = models.DateTimeField()
class BookManager(models.Manager):
def get_query_set(self):
return super(BookManager,self).get_query_set().annotate(transactioncount=(Count('transaction')))
Но я не знаю, как сделать это для транзакций за последние три года - я думаю, мне нужно переписать мою функцию аннотации или использовать что-то более сложное?
Возможно ли это даже в Джанго?
Большое спасибо.