#30906 closed Cleanup/optimization (fixed)
Error Outputting CSV code example. Template.render() does not accept Context objects.
Reported by: | Philipp Maino | Owned by: | Hasan Ramezani |
---|---|---|---|
Component: | Documentation | Version: | 2.2 |
Severity: | Normal | Keywords: | Context, template, loader, render |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | yes | UI/UX: | no |
Description
https://docs.djangoproject.com/en/3.0/howto/outputting-csv/
We can find in the section "Using the template system" in the docs about "Outputing csv with django" the following code:
t = loader.get_template('my_template_name.txt') c = Context({ 'data': csv_data, }) response.write(t.render(c))
The django.template.loader.render is expecting a dict though and not a Context object as we can see here:
class Template: def __init__(self, template, backend): self.template = template self.backend = backend @property def origin(self): return self.template.origin def render(self, context=None, request=None): context = make_context(context, request, autoescape=self.backend.engine.autoescape) . . . def make_context(context, request=None, **kwargs): """ Create a suitable Context from a plain dict and optionally an HttpRequest. """ if context is not None and not isinstance(context, dict): raise TypeError('context must be a dict rather than %s.' % context.__class__.__name__)
Change History (7)
comment:1 by , 5 years ago
Easy pickings: | set |
---|---|
Triage Stage: | Unreviewed → Accepted |
comment:2 by , 5 years ago
Summary: | Error in documentation: django.template.loader.render function does not accept Context objects → Error Outputting CSV code example. Template.render() does not accept Context objects. |
---|
comment:3 by , 5 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Note:
See TracTickets
for help on using tickets.
Yes, thank you. Good spot.