python - 如何显示特定产品的所有评论?
问题描述
使用下面的代码,我正在为数据库中的某些特定产品添加评论,它做得很好,但问题是在显示所选产品的评论时。我很困惑如何显示某些产品的所有评论以及完成的评论哪个用户在什么时间?
模型.py
class Product(models.Model):
name = models.CharField(max_length=250)
description = models.TextField(blank=True)
featured = models.BooleanField(default=False)
def __str__(self):
return self.name
class Review(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
review = models.TextField()
date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.review
视图.py
def detail(request,pk):
product = College.objects.get(pk=pk)
form = ReviewForm()
return render(request,'products/detail.html',{'product':product,'form':form})
@login_required(login_url='products:signin')
def review(request,pk):
if request.method == "POST":
form = ReviewForm(request.POST)
if form.is_valid():
review = form.save(commit=False)
review.product = Product.objects.get(pk=pk)
review.user = request.user
review.save()
messages.success(request, "Review saved")
return redirect('products:detail',pk)
else:
messages.error(request,'error in form')
return redirect('products:detail', pk)
详细信息.html
<h3>All reviews(total.no. of reviews?)</h3>
# Here i want to display all reviews and which is done by which user and at what time
<div class="col-lg-6 col-md-6 mb-6">
<form method="post" action="{% url 'products:review' product.pk %}">
{% csrf_token %}
{% form.as_p %}
<input type="submit" class="btn btn-success">
</form>
</div>
解决方案
你可以这样做reverse relation
:
<h3>All reviews {{ product.review_set.count }}</h3>
{% for review in product.review_set.all %}
{{ review.review }}
{{ review.date }}
{% endfor %}
推荐阅读
- javascript - 如何在适用于任何区域语言的文本区域/文本框中添加拼写检查
- node.js - 如何在试用模式下支付条带订阅计划并激活计划
- php - 更新数据库后更新输入的值
- oauth-2.0 - 该应用程序将从具有已接收访问权限的应用程序列表中消失
- spring - Spring Boot:为什么 ServerWebExchange getRequest().getMethod() 有时为空?
- vuejs3 - 如何使用 vuecli 将表格呈现为多个行跨度?
- c++ - 从 AWS S3 存储桶下载文件
- jboss - Jboss cli条件列表添加
- azure - 服务器不可用时的 Azure 负载均衡器默认消息
- authentication - Demandware (Salesforce Commerce Cloud) 控制器身份验证