Create awards.

def create_awards(self, db_read=None, batch_size=None,
                      post_save_signal=True):
        """
        Create awards.
        """
        if not self.can_perform_awarding():
            return

        User = get_user_model()

        db_read = db_read or self.db_read
        batch_size = batch_size or self.batch_size

        unawarded_ids, unawarded_ids_count = self.get_unawarded_user_ids(db_read=db_read)
        obsolete_ids, obsolete_ids_count = self.get_obsolete_user_ids(db_read=db_read)

        if obsolete_ids:
            for user_ids in chunks(obsolete_ids, batch_size):
                obsolete_users = User.objects.using(db_read).in_bulk(user_ids).values()

                signals.pre_delete.disconnect(sender=Award, dispatch_uid=PRE_DELETE_UID)
                Award.objects.filter(user__in=user_ids).delete()

                logger.debug("→ Badge %s (db_read: %s): unawarded %s",
                             self.slug,
                             db_read,
                             ' '.join(['%s' % user for user in obsolete_users]))

        if unawarded_ids:
            for user_ids in chunks(unawarded_ids, batch_size):
                unwarded_users = User.objects.using(db_read).in_bulk(user_ids).values()
                objects = [Award(user_id=user_id, badge=self.badge) for user_id in user_ids]

                bulk_create_awards(objects=objects,
                                   batch_size=batch_size,
                                   post_save_signal=post_save_signal)

                logger.debug("→ Badge %s (db_read: %s): awarded %s",
                             self.slug,
                             db_read,
                             ' '.join(['%s' % user for user in unwarded_users]))