I tried to access django template variable in html page inline javascript, it works fine.
But if I include js using <script src="..>
then it dont work.
Is this limitation or I'm doing something wrong?
I really appreciate your help.
views:
40answers:
2
+1
A:
The included Javascript isn't processed by the Django template processor on the server, so that won't work. If you need to pass information through the template to included Javascript files, have your template create a small <script>
block wherein some global variable is declared to contain those template variables. Then, your pure Javascript file can get the values by looking for the global object created by that <script>
from the template.
Pointy
2010-07-27 03:35:25
This worked gr8...thanks!
Cool
2010-07-28 03:03:26
+2
A:
Pointy's answer is correct. I often find this filter useful for that situation:
@register.filter(name='json')
def _json(obj):
#remember to make sure the contents are actually safe before you use this filter!
return safestring.mark_safe(json.dumps(obj))
then in a <script>
tag I can just do something like this:
window.g_details = {{ details|json }};
Jason Prado
2010-07-27 03:39:25