instead of using render_to_response which will send the HTML output back to browser.
I would like to take the results, generate HTML (using templates) & output the html into a variable in my views.py. How can I do this?
instead of using render_to_response which will send the HTML output back to browser.
I would like to take the results, generate HTML (using templates) & output the html into a variable in my views.py. How can I do this?
SOLVED! the way to do this -
from django.template.loader import render_to_string
rendered = render_to_string('my_template.html', { 'foo': 'bar' })
thanks to ned for pointing to the Django docs
Adapted from the Django docs:
from django.template import Context, Template
t = Template("My name is {{ my_name }}.")
c = Context({"my_name": "Adrian"})
output = t.render(c)
Template("My name is {{ my_name }}.") can I pass on the html i.e. Template("trial.html") ?There is even a simpler way (if you need to extract html data from render method):
R = render('template.html', context)
data = str(R.content)
request is mandatory argument for render() . Docs reference : docs.djangoproject.com/en/3.0/topics/http/shortcuts/#render