【发布时间】:2022-08-05 22:11:35
【问题描述】:
我试图从用户对该单个产品的每个评分中显示给定单个产品的平均评分。
我设法做到了。然而,我的代码似乎呈现所有产品和相关评论,而不仅仅是特定产品。
显然,我在某处告诉代码渲染所有产品而不是一个。但我不太确定在哪里。我认为它来自我的views.py 中的代码。
在同一页面中还要指定一些内容,我正在尝试显示:
- 每个产品的平均评论(这就是我的工作)
- 不同用户对特定产品的所有评论(有效)
是不是 2. 这会造成问题?我也应该在视图的第二行中引用 product_id 吗? (如果有,在哪里?)
楷模
class Product(models.Model): name = models.CharField(\'Product Name\', max_length=120, null=True) class Meta: db_table=\'Product\' def __str__(self): return str(self.name) class ReviewRating(models.Model): user = models.ForeignKey(User,blank=True,on_delete=models.CASCADE) product=models.ForeignKey(Product,related_name=\"comments\", on_delete=models.CASCADE) rating_1 = models.IntegerField(choices=RATING1,default=0) def __str__(self): return \'%s - %s - %s\'%(self.user, self.product, self.date_added)意见
from django.db.models import Avg def Notes (request, product_id): product = Product.objects.get(pk=product_id) data = Product.objects.order_by(\'name\').annotate( avg_rating_1 =Avg(\'comments__rating_1 \'), return render(request, \'main/notes.html\',{\'product\':product, \'data\':data})模板
{% for ReviewRating in data%} {{ReviewRating.avg_rating_1 }} {% endfor %}
标签: python django django-models django-views django-templates