On 13/03/2018 11:44 AM, Craig de Stigter wrote:
Thanks for the reply.
So I guess there are actually now two types of templates, and they
have incompatible API. Neither is deprecated.
Craig
I don't think your guess is correct. Or at least I'm missing something
if it is!
I remember bringing a project from 1.8 to 1.11 without any problems
other my own mis-readings of the docs. Things changed in 1.9 and the
following comes from ...
https://docs.djangoproject.com/en/1.9/ref/templates/api/#rendering-a-context.
Notice the Deprecated comment ...
Rendering a context¶
<https://docs.djangoproject.com/en/1.9/ref/templates/api/#rendering-a-context>
Once you have a compiled |Template|
<https://docs.djangoproject.com/en/1.9/ref/templates/api/#django.template.Template>
object, you can render a context with it. You can reuse the same
template to render it several times with different contexts.
/class /|Context|(/dict_=None/,
/current_app=_current_app_undefined/)[source]
<https://docs.djangoproject.com/en/1.9/_modules/django/template/context/#Context>¶
<https://docs.djangoproject.com/en/1.9/ref/templates/api/#django.template.Context>
This class lives at |django.template.Context|. The constructor takes
two optional arguments:
*
A dictionary mapping variable names to variable values.
*
The name of the current application. This application name is
used to help resolve namespaced URLs
<https://docs.djangoproject.com/en/1.9/topics/http/urls/#topics-http-reversing-url-namespaces>.
If you’re not using namespaced URLs, you can ignore this argument.
Deprecated since version 1.8: The |current_app| argument is
deprecated. If you need it, you must now use a |RequestContext|
<https://docs.djangoproject.com/en/1.9/ref/templates/api/#django.template.RequestContext>
instead of a |Context|
<https://docs.djangoproject.com/en/1.9/ref/templates/api/#django.template.Context>.
If you visit the link you quoted (below) and adjust the version part of
it and travel back in time you can see there is no change until you get
back to 1.9 from which I copied the above section.
Hth
Mike
Has this confused anyone else? Is this a desirable/necessary situation?
I think in order to have consistent template usage in our project we
really need to just use the new-style templates, which means we have
to avoid using `django.template.Template` at all. Perhaps it could be
deprecated and removed?
Cheers
Craig de Stigter
On Monday, 12 March 2018 11:21:41 UTC+13, Daniel Roseman wrote:
On Sunday, 11 March 2018 21:06:51 UTC, Craig de Stigter wrote:
Hi folks
I'm upgrading a large app from 1.8 to 1.11 and coming up
against this as I traverse through django 1.9:
>>> from django.template import engines, Context
... t = engines['django'].from_string('')
... t.render(Context({}))
...
/path/to/bin/django-admin.py:3: RemovedInDjango110Warning:
render() must be called with a dict, not a Context.
This is a surprising warning to me, since the docs still
document the use of Template.render(Context) in 2.0:
https://docs.djangoproject.com/en/2.0/ref/templates/api/#rendering-a-context
<https://docs.djangoproject.com/en/2.0/ref/templates/api/#rendering-a-context>
Would someone mind explaining this?
Cheers
Craig de Stigter
Not the same thing. `t` here is an instance
of django.template.backends.django.Template, whose render method
takes a dict. If you did:
from django.templates import Template
t = Template('')
then you would have an instance of django.template.base.Template,
whose render method takes a context.
I have no idea why the distinction, though.
--
DR.
--
You received this message because you are subscribed to the Google
Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to django-users+unsubscr...@googlegroups.com
<mailto:django-users+unsubscr...@googlegroups.com>.
To post to this group, send email to django-users@googlegroups.com
<mailto:django-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/aa356ec2-51d4-45d7-99a3-79ef14c775a5%40googlegroups.com
<https://groups.google.com/d/msgid/django-users/aa356ec2-51d4-45d7-99a3-79ef14c775a5%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Django
users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/dfef1fa0-92a7-0147-2e83-72e5050e3203%40dewhirst.com.au.
For more options, visit https://groups.google.com/d/optout.