Introduce DRF and start replacing the views.
[wolnelektury.git] / src / catalogue / management / commands / update_popularity.py
index 3a99056..df9dedf 100644 (file)
@@ -17,8 +17,10 @@ class Command(BaseCommand):
         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)