Pergunta

Eu tenho um JavaScript que leva duas variáveis, ou seja, duas listas, uma é uma lista de números e a outra lista de strings de Django/Python

numbersvar = [0,1,2,3]
stringsvar = ['a','b','c']

O Numbersvar é renderizado perfeitamente, mas quando eu faço {{stringsvar}}, ele não o renderiza.

Foi útil?

Solução

Talvez seja melhor usar um JSON Módulo para criar uma lista JavaScript?

>>> a = ['stste', 'setset', 'serthjsetj']
>>> b = json.dumps(a)
>>> b
'["stste", "setset", "serthjsetj"]'
>>> json.loads(b)
[u'stste', u'setset', u'serthjsetj']

Outras dicas

O que o Stringsvar contém? A lista ou a representação da string da lista?

Sugiro que você passe a representação correta da string javascript da lista do método de exibição para o modelo para renderizar. Os literais da matriz Python e JavaScript têm a mesma sintaxe, para que você possa fazer:

def my_view(request):
    return render_template("...", stringsvar=str(the_list))

E no modelo:

<script language="javascript">
stringsvar = {{ stringsvar }};
...
</script>

Ou você pode usar o Serializer JSON, isso tem o benefício adicional de que você poderá passar também outros tipos de valores.

from django.core import serializers
def my_view(request):
    return render_template("...", stringsvar=serializers.serialize("json", the_list))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top