Как проверить, существует ли такое поле для продукта (модели продукта)?

Я начинающий в django....... У меня есть такая модель

class Product(models.Model):
    title = models.CharField(max_length=50)
    description = models.TextField(blank=True)
    owner = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
    slug = models.SlugField(unique=True)  # "штрих код"
    price = models.DecimalField(max_digits=8,
                                decimal_places=2, )  
    creation_date = models.DateTimeField(auto_now_add=True)   
    last_update_time = models.DateTimeField(auto_now=True)   
    image1 = models.ImageField(blank=True)
    mark = models.CharField(max_length=50, blank=True)

class Review(models.Model):
    review = models.TextField(max_length=500)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    product_connected = models.ForeignKey(Product, on_delete=models.CASCADE, 
                                          related_name="reviews")
    creation_date = models.DateTimeField(auto_now_add=True)
    last_update_time = models.DateTimeField(auto_now=True)
    rating = models.IntegerField(default=0, validators=[MinValueValidator(0), MaxValueValidator(5)])

и вот такие взгляды

class ProductDetailView(LoginRequiredMixin, DetailView):
    model = Product
    template_name = "product.html"
    context_object_name = "product"

    @staticmethod
    def round_custom(num, step=0.5):
        return round(num / step) * step

    def get_context_data(self, **kwargs):
        data = super().get_context_data(**kwargs)
        data["pictures_list"] = Photo.objects.filter(product_connected=self.get_object())
        data["comments"] = Review.objects.filter(product_connected=self.get_object())
        if self.request.user.is_authenticated:
            data['comment_form'] = CommentForm(instance=self.request.user)
        average_rt=Review.objects.filter(
                                  product_connected=self.get_object()).aggregate(Avg('rating'))
        avr_intermediate = str(average_rt.get("rating__avg")).replace(",", ".")
        data["average_rating"] = self.round_custom(float(avr_intermediate))
        return data

Вся эта схема с average нужна для отображения рейтинга на сайте (rating), проблема в том, что продукт создается в модели продукта, а класс review создается только тогда, когда пользователь пишет отзыв. Так вот, как мне проверить, что для этого продукта есть Review, и если есть, то вернуть return data["average_rating"] через мою схему, а если нет, то просто return 0 в data average. Потому что без существующего поля, None приходит в мой код и выдает ошибку, а если есть хотя бы один Отзыв, то все работает как надо, тогда рейтинг можно передать в Product, но это для меня не вариант. Спасибо за любую помощь

Проверка размера набора запросов

if len(Review.objects.filter(product_connected=self.get_object()))>0:
    #do average code
else:
    data["average_rating"]=0
Вернуться на верх