Tuesday, February 25, 2020

Re: django context data into javascript

.js files, even if linked in Django templates are not processed by template engine. To output value from context to file, this file should be an output from template engine.

You have three ways to solve your problem:
  1. Make your myjs.js file generated by template processor. It's most difficult and worst way so I don't really suggest it, but feel free to experiment. Think about a view, which outputs js file content instead of html and link to this view url from your page template
  2. Move js assignment from myjs.js to your template (one in which you link myjs.js) wrap it in <script> tag and put BEFORE <script> tag which links to myjs.js
  3. Use json_script template filter in your template and rewrite myjs.js according to docs: https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#json-script

I prefer to use second choice for simple values, like string or number and third for complex objects.

And while you at it, I advice you to wrap {{ name  }} in double or single quotes, to prevent js error when name is empty string and resulting js-code looks like var my_name = ; Also look at default and default_if_none template filters https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#default 

25 февр. 2020 г., в 20:30, Soumen Khatua <soumenkhatua258@gmail.com> написал(а):

But I'm getting one error

On Tue 25 Feb, 2020, 5:59 PM Naveen Arora, <naveenarorakrnl@gmail.com> wrote:
Hi, this is simple just enclose {{name}} into " " as "{{name}}" for your part.

Thanks

On Tuesday, 25 February 2020 15:56:05 UTC+5:30, Soumen Khatua wrote:
Hi Folks,

I'm sending some context data into html like 
name = 'soumen'
return render(request,'xyz.html', context = {'name':name})

inside myjs.js(js script has been integrated to html):
-------------------------------------------------------------------
var my_name = {{name}};

I'm getting an error::: Uncaught SyntaxError: Unexpected token '{'

So,How I can render data into frontend??

Thank You in advance

--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/b6c9cd98-b9bd-4178-919a-13d8156029a6%40googlegroups.com.

--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAPUw6WatGXxg0G%3DxC%3DS8ddMFmMpQm-TeZ8B2zZxZi9AAFj8npA%40mail.gmail.com.

No comments:

Post a Comment