2010-01-20 5 views
1
두 개의 변수를 즉 두 목록을 하나의 목록을 목록 및 장고/파이썬 문자열 목록에서 다른 수 걸립니다. numbersvar 완벽하게 렌더링되지만 {{stringsvar}} 할 때 그것을 렌더링하지 않습니다.
+1

출력하는 데 사용하는 코드 예를 제공해 주시겠습니까? –

+0

이것은 같은 포스터의 이전 질문과 중복됩니다. http://stackoverflow.com/questions/2094835/list-variable-containing-string-not-getting-rendered-in-django-template/2095097#2095097 –

+0

' 분명히 공통점이 있지만 분명히 이것이 중복이라는 것을 확신하지 못합니다. –

답변

3

아마 json 모듈을 사용하여 자바 스크립트 목록을 만드는 것이 더 좋을까요?

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

다른 사람들이 이미 디버깅 한 코드를 사용하려면 +1하십시오. – slebetman

+0

어떻게 그 일을하려고합니까? 유사한 방식으로 문자열을 만들 수 있습니까? –

0

stringsvar에는 무엇이 들어 있습니까? 목록 또는 목록의 문자열 표현은 무엇입니까?

뷰 메서드에서 렌더링 할 목록의 올바른 자바 스크립트 문자열 표현을 전달하는 것이 좋습니다. 파이썬과 자바 스크립트 배열 리터럴은 동일한 구문을 가지고, 그래서 당신은 할 수 :

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

을 그리고 템플릿 :

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

또는 당신이 JSON 시리얼 라이저를 사용할 수 있습니다,이 추가 혜택을 가지고 당신 것 다른 종류의 가치도 전달할 수 있어야합니다.

from django.core import serializers 
def my_view(request): 
    return render_template("...", stringsvar=serializers.serialize("json", the_list)) 
+0

stringsvar = [ 'stringone', 'stringtwo'] 자바 스크립트에 문자열을 전달하려고했지만 그 중 하나도 작동하지 않았습니다. 변수를 직렬화하면 어떻게 직렬화됩니까? –

+0

역 직렬화를 수행하지 않습니다. serializers.serialize ("json", ...)를 사용하여 파이썬리스트를 자바 스크립트 리터럴 표현으로 변환합니다. 그 리터럴 표현은 템플릿으로 전달되고 변경되지 않은 채로 출력됩니다. 그래서 나는 자바 스크립트가 스크립트가 평가 될 때 변수를 비 직렬화한다고 말할 수 있다고 생각한다. – codeape

관련 문제