Как отобразить средние оценки в виде звезд в django

Я хочу отобразить среднюю оценку продукта в виде звезд, где я хочу иметь 5 звезд, а затем заполнить звезды золотым цветом в зависимости от того, насколько велика средняя оценка продукта.

Вот мой код и отношение между моделями

class Product(models.Model):
    name = models.CharField(max_length=300)
    price = models.DecimalField(max_digits=7, decimal_places=2)
    image_url = models.CharField(max_length=400)
    digital = models.BooleanField(blank=False)
    sizes =  models.ManyToManyField(Size, through='ProductSize')
    quantity = models.IntegerField(default=1)

    def __str__(self):
       return self.name
    
    @property
    def get_average_rating(self):
        average = self.comment_set.aggregate(Avg('rating'))['rating__avg']
        if average is not None:
            return round(average, 1)
        else:
            return 0 


class Comment(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    text = models.TextField()
    image = models.ImageField(upload_to='images/comment_images', null=True, blank=True)
    created_on = models.DateField(auto_now_add=True)
    rating = models.IntegerField(default=0, validators=[MinValueValidator(0), MaxValueValidator(5)])

Я пытался запустить такой цикл, но он не сработал, так как средний рейтинг находится в float

Я не знаю много javascript, так что если вы можете помочь мне в js, это будет оценено также спасибо!!!

           {% for _ in product.get_average_rating %}
               ★
           {% endfor %}

Рендеринг в модели:

class Product(models.Model):
    name = models.CharField(max_length=300)
    price = models.DecimalField(max_digits=7, decimal_places=2)
    image_url = models.CharField(max_length=400)
    digital = models.BooleanField(blank=False)
    sizes = models.ManyToManyField(Size, through='ProductSize')
    quantity = models.IntegerField(default=1)

    def __str__(self):
        return self.name

    @property
    def average_rating(self):
        return round(
            self.comment_set.aggregate(Avg('rating'))['rating__avg'] or 0, 1
        )

    @property
    def star_rating(self):
        return '★' * self.average_rating

и визуализировать с помощью:

{{ product.star_rating }}
Вернуться на верх