次のステートメントを使用して、djangoでCOUNT GROUP BYを作成しようとしました
top_book = Borrow.objects.filter(beginDate__gte=str(weekAgoDate)).values('book').order_by().annotate(num_borrow=Count('book')).order_by('-num_borrow')[:5]
しかし、テンプレートのデータにアクセスしようとすると、何も出力されません
{% for cont in top_book %}
<tr>
<td><a href="/toplibrary/bookInfo/{{ cont.book.idBook }}/">{{ cont.book.title }}</a></td><td>{{ cont.book.isbn }}</td><td>{{ cont.book.author }}</td><td>{{ cont.book.editor }}</td>
</tr>{% endfor %}
だから私は自分の本について必要なすべての情報を取得するためにクラス Book で IN ステートメントを実行しようとしました
top_books=Book.objects.filter(idBook__in=top_book)
しかし、私はこのエラーが発生します
"This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'"
誰かが解決策を提案できますか?
class Book(models.Model):
idBook = models.IntegerField(primary_key=True)
title = models.CharField(max_length=255)
isValid = models.BooleanField(default=True)
linkDescr = models.CharField(max_length=255)
editor = models.CharField(max_length=255)
author = models.CharField(max_length=255)
isbn = models.BigIntegerField()
categories = models.ManyToManyField(Category, verbose_name="Categories")
position = models.ForeignKey(Position, verbose_name="Position")
addedDate = models.DateTimeField()
class Borrow(models.Model):
beginDate = models.DateField()
renewed = models.BooleanField(default=False)
user = models.ForeignKey(User, verbose_name="BorrowHasUser")
book = models.ForeignKey(Book, verbose_name="BorrowHasBook")
returnDate = models.DateField(blank=True, null=True)