Passing an integer through the url to make a product page
We will make it so the product is passed through the url, and then used to display just that product. So we could use'/product/1' to display the produce with the id number of 1.
urls.py
We need to define a new path in the 'urlpatterns', add the following:
path('product/<int:prodID>/', myapp.views.showproduct, name='showproduct'),
This will create a url for '/product/' and the value you enter, ie '/product/1' will be used as an integer and will be called 'prodID'.
views.py
The path in the 'urls.py' above points to a 'showproduct' method, we will need to create this in the 'views.py'. To pass the url parameter we will need to include it in the arguments:
def showproduct(request, prodID):
product_info = {
'products' : Product.objects.filter(pk = prodID),
'reviews' : Review.objects.filter(product = prodID)
}
return render(request, 'MyApp/showproduct.html', product_info)
'prodID' is passed into the procedure by the arguments, and then used to filter the product model by the primary key and then filter the review model by the product field.