【发布时间】:2015-07-29 13:52:20
【问题描述】:
这是我的第一个 Django 应用程序。我正在尝试显示多条评论的平均评分。
这似乎适用于我的产品模板,但不适用于我的博客模板,因为未定义 productprofile_id:
product_rating = Review.objects.filter(product_id=productprofile_id).aggregate(Avg('rating')).values()
如何在博客模型中使用related_products 字段过滤评论模型?或者是否可以只在我的帖子模板中包含产品视图?提前感谢您的帮助!
我的模型:
class Post(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=100)
related_product = models.ManyToManyField(ProductProfile, blank=True)
def __str__(self):
return self.title
class ProductProfile(models.Model):
product = models.CharField(max_length=80)
avatar = models.ImageField(upload_to='profile_images', blank=True)
price = models.IntegerField()
info = models.TextField(blank=True)
category = models.ForeignKey(ProductCategories)
link = models.URLField(blank=True)
bookmarks = models.ManyToManyField(User, blank=True,related_name='product_bookmarks')
def __str__(self):
return self.product
class Review(models.Model):
user = models.ForeignKey(User)
product = models.ForeignKey(ProductProfile)
rating = models.IntegerField()
review = models.TextField(blank=True)
def __str__(self):
return self.user.username
我的看法:
def post(request, post_id):
try:
post = Post.objects.get(pk=post_id)
except Post.DoesNotExist:
raise Http404
product_rating = Review.objects.filter(product_id=productprofile_id).aggregate(Avg('rating')).values()
return render(request, 'app/blog.html', {'post': post, 'product_rating': product_rating})
def product(request, productprofile_id):
try:
product = ProductProfile.objects.get(pk=productprofile_id)
except ProductProfile.DoesNotExist:
raise Http404
product_media = ProductMedia.objects.filter(product_id=productprofile_id)
product_brand = BrandProfile.objects.filter(products__id=productprofile_id)
review = Review.objects.filter(product_id=productprofile_id)
product_rating = Review.objects.filter(product_id=productprofile_id).aggregate(Avg('rating')).values()
return render(request, 'app/product.html', {'product': product, 'product_media': product_media, 'review': review, 'product_rating': product_rating, 'product_brand': product_brand,})
我的模板标签:
{% for value in product_rating %} {{ value }} {%endfor%}
【问题讨论】:
-
我找不到你的
Review。 -
我不确定您希望帖子页面上的评级是什么。一个帖子可能与多个产品相关。您期望什么价值?
-
@DanielRoseman。我正在显示与每个帖子相关的产品列表。我也想显示产品的评分。