2016-11-14 2 views
0

Django에서 템플릿에 보내려는 dict 오브젝트의 값에 액세스하는 데 문제가 있습니다. 내보기에서 dict의 내용을 액세스하고 인쇄 할 수 있지만 템플릿에 데이터를 보내려고하면 제대로 인코딩되지 않은 것처럼 모든 종류의 문자가 있습니다. 처음에는 직렬화에 문제가있을 수 있다고 생각했지만 this post에 json_serializer.serialize가 쿼리 세트와 함께 사용된다고 나와 있습니다. 이 올바른지? 여기에서 나는 다음을 시도했다.Django 템플릿의 dict 값에 액세스하기

은 처음 엔 그럼 난에 데이터를 포맷하려고 그냥이

<script>var data = "{{ data }}"; </script> 
<script>console.log(data);</script> 

// displays the following 
// &lt;testsite.views.data object at 0x1045f1e48&gt; 

다음 한 템플릿에서 너무

data = {'item_1': 123, 'item_2': 456, 'item_3': ['a','b','c'] } 
return render(request, 'testsite/new_page.html', {'data' : data}) 

같은 서식없이 그 자체로 데이터 변수를 보내려고 JSON

data = {'item_1': 123, 'item_2': 456, 'item_3': ['a','b','c'] } 
return render(request, 'testsite/new_page.html', {'data' : json.dumps(data.__dict__) }) 

//template 
<script>var data = "{{ data }}"; </script> 
<script>console.log(data);</script> 

// the following is the improperly formatted result 
// {&quot;item_1&quot;: 123, &quot;item_2&quot;: 456, &quot;item_3&quot;: [&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,] 

json.dumps(data.__dict__) 대신 jus를 사용하면 t가 json.dumps(data) 있습니다 개체에 대한 오류가 JSON 직렬 가능하지 않습니다

내 견해로는 다음과 같습니다. dict의 내용이 올바르게 형식화됩니다. 템플릿

print(data.__dict__) 
import pdb; pdb.set_trace() 

# displays the dict properly 
# {'item_1': 123, 'item_2': 456, 'item_3': ['a','b','c'] } 

그래서 같은 자바 스크립트를 사용하여 데이터 객체를 반복하려하지만 단지 잘못 포맷 딕셔너리의 각 문자를 표시한다.

for (var key in data) { 
    console.log(data[key]); 
} 

템플릿에서 부적절한 형식의 데이터가 발생하는 이유는 무엇입니까?

+0

방금'복귀 렌더링 할 수없는 "&quot;으로 (요청을 설정하는 장고가 중지

<script>var data = "{{ serialized_data | safe }}"; </script> 

참고로 safe 필터를

return render(request, 'testsite/new_page.html', {'serialized_data' :json.dumps(data) }) 

사용을 고려 testsite/new_page.html ', {'data ': data})'? – shuttle87

+0

죄송합니다. 업데이트해야합니다. 그렇게하면 메모리 위치로 보이는 것과 이상한 결과가 발생합니다. 내 게시물을 업데이트하겠습니다. – user1852176

+0

e4c5

답변

2

은 '당신의

+0

이 작업을 수행 할 때 참조 오류가 발생합니다. ReferenceError : 데이터가 정의되지 않았습니다. 내가 가진 데이터보다 serialized_data를 어떻게 사용했는지에 대한 답변을 설명했습니다. 여전히 참조 대답을 얻는다. e4c5의 대답과 동일하다. – user1852176

+0

@ user1852176 plz는 코드에 따라 변수 이름을 조정한다. – ospider

+0

나는 그것을했지만 내 의견에는 언급하지 않았다. 나는 당신이 그것을보기 전에 내 의견을 바꾸 었음에 틀림 없다. 다른 대답은 또한 참조 오류가 발생합니다. – user1852176

관련 문제