I want to use href in the jinja2 template to send the user to the the specific result based on id to learn more about that particular result. I created a route url : ('view_assessment_result', '/view_assessment_result/{id}') that renders all the details about the specific result based on id.
What I want to do:
When a user clicks on the ID number, they will be sent to the route view_assessment_result/{some_id} that will render the specifics of that page based on the id found in the iteration for a in assessment....
I tried looking into cases, but others seem to be using Flask, which I am NOT using. The template code below is not accomplishing the task at hand.
See code below:
route config:
#Route convention: resource 'name' 'url dispath'
config.add_route('view_assessment_result', '/view_assessment_result/{id}')
jinja template
<tr>
{% for a in assessment_results %}
<td><a href="{{ '/view_assessment_result' }}">{{ a.id }}</a></td>
<td>{{ a.owner }}</td>
<td>{{a.assessment }}</td>
</tr>
{% endfor %}
view configuration that renders specific result sent by href above:
@view_config(route_name='view_assessment_result', request_method='GET', renderer='templates/analyst_view.jinja2')
def view_assessment_result(request):
with transaction.manager:
assessment_result_id = int(request.matchdict['id'])
assessment_result = api.retrieve_assessment_result(assessment_result_id)
if not assessment_result:
raise HTTPNotFound()
#more code
You need to add the id into your URL path. One way to add the id (from the Python variable a.id to your URL is to use the % string formatting operator, like so:
<a href="{{ '/view_assessment_result/%s'%a.id }}">{{ a.id }}</a>
Also, if your a.id might include special characters (/, &, etc), you can escape them via the urlencode filter:
<a href="{{ '/view_assessment_result/%s'%a.id|urlencode }}">{{ a.id }}</a>
You can use request.route_path to generate the URL.
<a href="{{ request.route_path('view_assessment_result', id=a.id) }}">{{ a.id }}</a>
Documentation here: http://docs.pylonsproject.org/projects/pyramid/en/latest/api/request.html#pyramid.request.Request.route_path
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With