2016-11-15 2 views
0

내 폴링 프로젝트에 chartjs을 사용합니다. 차트에는 설문 조사 옵션과 동일한 행이 여러 개 있습니다. 예 :Django - 템플릿에 2 차원 사전 데이터 렌더링

프로그래머가 있습니까?

  1. 없음

다음 차트는 Yes 2 개 라인과 No 투표 레코드를 생성하지 않을 것이다.

view에서 나는 투표 옵션을 저장하기 위해 2 차원 dictionary을 만들었습니다.

하지만 템플릿에 2 차원 dictionary 데이터를 렌더링하는 데 문제가 있습니다. 템플릿 파일에서 나는 chartjs을 코딩했습니다. 이 다음 코드와 같은 라인에 대한 데이터를 설정하는 옵션입니다 - 코드 위

datasets: [{ 
      label: '# of Votes', 
      data: [12, 19, 3, 5, 2, 3], 
      backgroundColor: [ 
       'rgba(255, 99, 132, 0.2)', 
      ], 
      borderColor: [ 
       'rgba(255,99,132,1)', 
      ], 
      borderWidth: 1 
     }] 

가 하나의 라인을 생성하지만 여러 개의 라인이 동적으로 만들 필요가있다. 나는 다음 코드를 사용하여 데이터 집합을 만들려고하고

{8: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 0, 12: 0}, 7: {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0, 10: 0, 11: 1, 12: 0}} 

- -

은 여기 내 두 차원 dictionary 데이터 세트입니다

{% for key, value in vote_records.items %} 
      {% list = [] %} 
      {% for single_key, single_value in value.items %} 
      {% list.append(single_value) %} 
      {% endfor %} 
      { 
        label: '# for Vote', 
        data: {{ list }}, 
        backgroundColor: [ 
        'rgba(255, 99, 132, 0.2)', 
        ], 
        borderColor: [ 
        'rgba(255,99,132,1)', 
        ], 
        borderWidth: 1 
      }, 
      {% endfor %} 

그러나 이것은 템플릿의 올바른 방법이 아니다. 어떻게해야합니까? 감사.

답변

1

템플릿에서 목록 조작을 수행 할 수 없습니다. 당신이하고 싶은 것이 분명하지는 않지만 각 내부 dict의 값을 JS 함수에 전달해야하는 것처럼 보입니다.

{% for key, value in vote_records.items %} 
     { 
       label: '# for Vote', 
       data: {{ value.values }}, 
       backgroundColor: [ 
       'rgba(255, 99, 132, 0.2)', 
       ], 
       borderColor: [ 
       'rgba(255,99,132,1)', 
       ], 
       borderWidth: 1 
     }, 
{% endfor %} 
+0

예, 이것이 나의 주요 문제입니다. 그것은'{{value.values}}'리스트를 생성합니까? 나는 꽤 장고를 처음 사용했다. – user3384985

+0

이것은 장고 질문이 아니지만 표준 파이썬입니다. 쉘에서 시도해보십시오 :'x = {1 : 0, 2 : 0, 3 : 1}; x.values ​​()' –

+0

dict_values ​​([0, 0, 1])를 보여줍니다. 목록 [0, 0, 1]을 얻거나 사용자 정의가 필요합니까? – user3384985