From: Jan Szejko Date: Tue, 16 Feb 2016 10:29:46 +0000 (+0100) Subject: bulk_create in update_popularity X-Git-Url: https://git.mdrn.pl/wolnelektury.git/commitdiff_plain/ff98e9508e1505e4330b1167697f7dd514b4ee37?hp=702b1be959697fb38deb0bbad9b7472d07046e04 bulk_create in update_popularity --- diff --git a/src/catalogue/management/commands/update_popularity.py b/src/catalogue/management/commands/update_popularity.py index 3a9905673..df9dedf49 100644 --- a/src/catalogue/management/commands/update_popularity.py +++ b/src/catalogue/management/commands/update_popularity.py @@ -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)