Django에서 템플릿에 보내려는 dict 오브젝트의 값에 액세스하는 데 문제가 있습니다. 내보기에서 dict의 내용을 액세스하고 인쇄 할 수 있지만 템플릿에 데이터를 보내려고하면 제대로 인코딩되지 않은 것처럼 모든 종류의 문자가 있습니다. 처음에는 직렬화에 문제가있을 수 있다고 생각했지만 this post에 json_serializer.serialize가 쿼리 세트와 함께 사용된다고 나와 있습니다. 이 올바른지? 여기에서 나는 다음을 시도했다.Django 템플릿의 dict 값에 액세스하기
은 처음 엔 그럼 난에 데이터를 포맷하려고 그냥이
<script>var data = "{{ data }}"; </script>
<script>console.log(data);</script>
// displays the following
// <testsite.views.data object at 0x1045f1e48>
다음 한 템플릿에서 너무
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
// {"item_1": 123, "item_2": 456, "item_3": ["a","b","c",]
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]);
}
템플릿에서 부적절한 형식의 데이터가 발생하는 이유는 무엇입니까?
방금'복귀 렌더링 할 수없는
"
"
으로 (요청을 설정하는 장고가 중지참고로
safe
필터를사용을 고려 testsite/new_page.html ', {'data ': data})'? – shuttle87
죄송합니다. 업데이트해야합니다. 그렇게하면 메모리 위치로 보이는 것과 이상한 결과가 발생합니다. 내 게시물을 업데이트하겠습니다. – user1852176
– e4c5