기술블로그-Django편

📘 Django Paginator: get_page(함수) vs get.page(속성) 차이 완벽 정리

Chansman 2025. 5. 7. 16:18

📘 Django Paginator: get_page vs get.page 차이 완벽 정리


✅ 1. 헷갈리기 쉬운 코드 비교

올바른 코드 잘못된 코드

paginator.get_page(page) ❌ paginator.get.page

🔍 2. 핵심 차이: 함수 vs 속성

구분 설명 예시 동작 여부

get_page() 메서드(함수) 호출 paginator.get_page(2) ✅ 정상 작동
get.page 객체의 속성 접근 paginator.get.page ❌ 존재하지 않아 오류 발생

📌 정리

  • get_page는 **Paginator 클래스 내부에 정의된 메서드(함수)**입니다.
  • 따라서 반드시 괄호 ()를 붙여 호출해야 합니다.
  • get.page는 마치 get이라는 객체 안에 page라는 **변수(속성)**를 찾는 방식인데, 그런 속성은 없기 때문에 오류가 납니다.

🧠 기억 꿀팁

get_page()는 함수니까 항상 괄호 ()를 붙인다!

비슷한 예로, 아래 코드도 함수 호출이죠:

page = request.GET.get('page')  # get()은 dict에서 값을 꺼내는 함수

💡 함수와 속성의 시각적 비교

class Example:
    def get_page(self, number):
        return f"Page {number}"

ex = Example()
ex.get_page(3)  # ✅ Page 3 (함수 호출)
ex.get.page     # ❌ 오류: get이라는 속성에 page란 변수는 없음

✅ 결론 정리

표현 의미 결과

get_page() 메서드(함수) 호출 → 페이지 객체 반환 ✅ 사용해야 함
get.page 속성 탐색 시도 → 그런 속성 없음 ❌ 오류 발생

Django에서 함수는 항상 ()와 함께 사용해야 한다는 점을 기억하세요.
get_page()는 Paginator 객체에서 페이지 데이터를 얻는 공식적인 방법입니다!