Difference between revisions of "Passing an integer through the url to make a product page"
(→urls.py) |
(→views.py) |
||
Line 12: | Line 12: | ||
=views.py= | =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: | ||
+ | |||
+ | <syntaxhighlight lang=python> | ||
+ | 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) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | '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. | ||
=template= | =template= |
Revision as of 14:21, 26 September 2019
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.