django listview 예제

위의 기본 동작을 변경하기 위해 속성을 추가할 수 있습니다. 예를 들어 이 동일한 모델을 사용하는 여러 뷰가 필요하거나 book_list가 특정 템플릿 사용 사례에 대해 직관적이지 않은 경우 다른 템플릿 변수 이름을 사용할 경우 다른 템플릿 파일을 지정할 수 있습니다. 아마도 가장 유용한 변형은 반환되는 결과의 하위 집합을 변경/필터링하는 것이므로 다른 사용자가 읽은 상위 5권의 책을 나열하는 대신 에이크를 나열할 수 있습니다. 책 세부 정보 경로의 경우 URL 패턴은 특수 구문을 사용하여 보려는 책의 특정 ID를 캡처합니다. 구문은 매우 간단합니다: 각도 대괄호는 뷰가 캡처된 데이터에 액세스하는 데 사용할 수 있는 변수의 이름을 둘러싸고 캡처할 URL 부분을 정의합니다. 예를 들어 표시된 패턴을 캡처하고 값을 변수 «something»로 뷰에 전달합니다. 선택적으로 데이터 유형(int, str, slug, uuid, path)을 정의하는 변환기 사양으로 변수 이름 앞에 지정할 수 있습니다. 예를 들어 책/1234와 일치하고 변수 pk=`1234`를 뷰로 보냅니다. 참고 : 템플릿에서 함수를 호출 할 때 «부작용»에 대해 조금 주의해야합니다. 여기서는 표시할 URL만 얻을 수 있지만 함수는 거의 모든 작업을 수행할 수 있습니다 . 여기서 는 사용되지 않지만 루프 내에서 Django는 반복을 추적하는 데 사용할 수 있는 다른 변수도 만듭니다. 예를 들어 forloop.last 변수를 테스트하여 루프가 마지막으로 실행될 때 조건부 처리를 수행할 수 있습니다. 일부 타사 응용 프로그램에서 일반 뷰의 더 많은 예제를 사용할 수 있습니다 또는 필요에 따라 직접 작성할 수 있습니다.

페이지 조정을 사용하는 경우 페이지 지정 문서에서 예제 템플릿을 조정할 수 있습니다. 해당 예제 템플릿의 연락처 인스턴스를 page_obj로 변경합니다. 필요한 경우 템플릿에서 책을 참조하는 데 사용되는 컨텍스트 개체의 이름과 템플릿을 변경할 수 있습니다. 예를 들어 메서드를 재정의하여 컨텍스트에 추가 정보를 추가할 수도 있습니다. path()에서 제공하는 패턴 일치는 문자열이나 정수를 캡처하려는 (매우 일반적인) 경우에 간단하고 유용합니다. 보다 세련 된 필터링 (예: 특정 수의 문자가 있는 문자열만 필터링) re_path() 메서드를 사용할 수 있습니다. 이것은 «스텁»에 대한 매우 일반적인 패턴입니다.