قائمة Python لا يتم تقديمها في JavaScript
-
21-09-2019 - |
سؤال
لديّ JavaScript يأخذ متغيرين ، أي قائمتين ، واحدة هي قائمة بالأرقام وقائمة السلاسل الأخرى من Django/Python
numbersvar = [0,1,2,3]
stringsvar = ['a','b','c']
يتم تقديم NumberVar بشكل مثالي ، لكن عندما أفعل {{{{{}} ، فإنه لا يقدمه.
المحلول
ربما سيكون من الأفضل استخدام أ جيسون الوحدة النمطية لإنشاء قوائم JavaScript؟
>>> a = ['stste', 'setset', 'serthjsetj']
>>> b = json.dumps(a)
>>> b
'["stste", "setset", "serthjsetj"]'
>>> json.loads(b)
[u'stste', u'setset', u'serthjsetj']
نصائح أخرى
ماذا يحتوي stringsvar؟ القائمة ، أو تمثيل سلسلة القائمة؟
أقترح عليك تمرير تمثيل سلسلة JavaScript الصحيح للقائمة من طريقة العرض إلى القالب لتقديمه. يحتوي Python و JavaScript Array على نفس بناء الجملة ، لذلك يمكنك القيام به:
def my_view(request):
return render_template("...", stringsvar=str(the_list))
وفي القالب:
<script language="javascript">
stringsvar = {{ stringsvar }};
...
</script>
أو يمكنك استخدام JSON Serializer ، وهذا له فائدة إضافية تفيد بأنك ستتمكن من تمرير أنواع أخرى من القيم أيضًا.
from django.core import serializers
def my_view(request):
return render_template("...", stringsvar=serializers.serialize("json", the_list))
لا تنتمي إلى StackOverflow