BookPopularity.objects.all().delete()
books_with_popularity = Book.objects.filter(tag_relations__tag__category='set').only('id').distinct()\
.annotate(pop=Count('tag_relations__tag__user', distinct=True))
+ pop_list = []
for book in books_with_popularity:
- BookPopularity.objects.create(book=book, count=book.pop)
+ pop_list.append(BookPopularity(book=book, count=book.pop))
books_without_popularity = Book.objects.exclude(tag_relations__tag__category='set')
for book in books_without_popularity:
- BookPopularity.objects.create(book=book, count=0)
+ pop_list.append(BookPopularity(book=book, count=0))
+ BookPopularity.objects.bulk_create(pop_list, batch_size=512)