2013-06-06 1 views
0

, 나는 자주 전화 :Python/Django에서 사전 값을 목록으로 변환하는 방법은 무엇입니까? 내 장고 템플릿에서

{% for name, address in directory.addressbook.items %} 
    {% for street in address.list %} 
    {{street.number}} 

가 어떻게 필터로이를 만들려면 어떻게해야합니까? 나는 이것을 시도했지만 작동하지 않습니다.

{{directory.addressbook.items|all_numbers}} 

그리고 내 필터 정의에

내가 가진 :

def all_numbers(data): 
    number_list=[] 
    if isinstance(data, dict): 
    for name, address in data: 
     for street in data.list(): 
     number_list.append(street) 
    return number_list 

을하지만 반환받을 모두 "[]"입니다 템플릿에서

, 나는 호출합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

이 코드가 문제의 일부인지는 모르지만 바깥 쪽 루프 ('for name, 데이터 주소 :')가 전혀 사용되지 않습니다 ('name' 또는'address'를 사용하지 않습니다). – SethMMorton

+0

또한'dict'에는'list' 속성이 있다고 생각하지 않습니다. 이것은 * 구문 오류를 발생시켜야합니다. 왜냐하면 코드의 일부가 실행되고 있지 않다는 것을 당신이 알지 못하기 때문입니다. '데이터'는 비어 있습니까? 그렇다면'[]'를 반환하는 것이 정확합니다. – SethMMorton

+0

ah typo는 'address.list()에있는 거리 용'을 의미합니다. 그러나 나는 거기에서 예외를 얻지 않는다 - 이것을하는 올바른 방법은 무엇인가? (죄송합니다. 파이썬에 익숙하지 않습니다.) – nerdinary

답변

1

함수를 템플릿 필터로 등록해야합니다. 또한이 코드는 모듈에 있어야하고 그런 다음 템플릿으로 가져와야합니다. ...

+0

함수가 이미 필터로 등록되어 있습니다. 그렇지 않으면 예외가 발생합니다. 그것을 부르십시오. 나는 다른 많은 필터를 사용하고있다. 왜 "for street in data.list()"예외가 발생합니까? – nerdinary

+0

코드 샘플이 불완전한 경우 가정 할 수 없습니다. – Brandon

관련 문제