2012-11-26 36 views
6

Tôi đang sử dụng hệ thống mẫu django, và tôi đang gặp vấn đề sau đây:django mẫu và từ điển của danh sách

tôi vượt qua một đối tượng từ điển, example_dictionary, trong từng mẫu:

example_dictionary = {key1 : [value11,value12]} 

và Tôi muốn làm như sau:

{% for key in example_dictionary %} 
// stuff here (1) 
{% for value in example_dictionary.key %} 
// more stuff here (2) 
{% endfor %} 
{% endfor %} 

Tuy nhiên, điều này không đi vào vòng lặp thứ hai.

Thật vậy, nếu tôi đặt

{{ key }} 

trên (1), nó cho thấy chìa khóa đúng, tuy nhiên,

{{ example_dictionary.key }} 

thấy không có gì.

Trong this answer, có người đề xuất sử dụng

{% for key, value in example_dictionary.items %} 

Tuy nhiên, điều này không làm việc trong trường hợp này bởi vì tôi muốn (1) để có thông tin liên quan đến việc quan trọng đặc biệt.

Làm cách nào để đạt được điều này? Tui bỏ lỡ điều gì vậy?

Trả lời

9

Tôi cho rằng bạn đang tìm một vòng lặp lồng nhau. Trong vòng lặp bên ngoài, bạn làm điều gì đó với khóa từ điển và trong vòng lặp lồng nhau, bạn lặp qua giá trị từ điển có thể lặp lại, một danh sách trong trường hợp của bạn.

Trong trường hợp này, đây là dòng điều khiển mà bạn cần:

{% for key, value_list in example_dictionary.items %} 
    # stuff here (1) 
    {% for value in value_list %} 
    # more stuff here (2) 
    {% endfor %} 
{% endfor %} 

Một mẫu:

example_dictionary = {'a' : [1,2]} 
{% for key, value_list in example_dictionary.items %} 
    print key 
    {% for value in value_list %} 
    print value 
    {% endfor %} 
{% endfor %} 

Kết quả sẽ là:

'a' 
1 
2 

Nếu đây không phải là bạn đang tìm kiếm, xin vui lòng, sử dụng một mẫu để ilustrate nhu cầu của bạn.

Các vấn đề liên quan