I have 2 models : -products -review
Every product has one or more reviews.
Question : How I can get this related object's in view and pass him into template.
def product_detail(request, id, slug):
product = get_object_or_404(Product, id=id, slug=slug, available=True)
cart_product_form = CartAddProductForm()
reviews = Review.objects.filter()
template = 'shop/product/detail.html'
return render_to_response(template,
{'product': product,
'cart_product_form': cart_product_form,
'reviews': reviews})
class Review(models.Model):
RATING_CHOICES = (
(1, '1'),
(2, '2'),
(3, '3'),
(4, '4'),
(5, '5'),
)
product = models.ForeignKey(Product, on_delete=models.CASCADE, default=None)
user = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
created = models.DateTimeField(auto_now_add=True, auto_now=False)
text = models.TextField(max_length=500, blank=False)
rating = models.IntegerField(choices=RATING_CHOICES, default=5)
def __str__(self):
return "%s" % self.user
product.review_set.all(), although in the template you don't need the parentheses.