Difference between revisions of "Passing an integer through the url to make a product page"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(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.

template