🔍 Django의 object vs objects 완전 정리!

2025. 5. 15. 21:29·기술블로그-Django편

🔍 Django의 object vs objects 완전 정리!

Django를 처음 배우다 보면 object와 objects가 비슷하게 생겨서 많이 헷갈립니다. 실제로 두 단어는 전혀 다른 역할을 하지만, 이름이 비슷해서 오해하기 쉬워요. 이 글에서는 그 차이를 확실하게 구분해드릴게요!


1️⃣ objects: 매니저(Manager) 객체

Person.objects.create(name="Alice")

✅ 의미:

  • objects는 Django 모델 클래스에 자동으로 붙는 매니저 객체예요.
  • 이 객체는 데이터베이스와 상호작용할 수 있도록 도와주는 입구 관리자 역할을 합니다.

🛠️ 기능:

  • .create() : 객체 생성 + 저장
  • .all() : 모든 레코드 조회
  • .filter() : 조건에 맞는 레코드 필터링
  • .get() : 특정 객체 하나 가져오기

📌 예시:

Person.objects.filter(age__gte=20)

→ 20세 이상인 사람들을 모두 가져옵니다.

💡 외우는 팁:

  • s가 붙었다! → 여러 개 다룬다 → DB 전체, QuerySet 느낌!

2️⃣ object: 현재 다루는 인스턴스

self.object = form.save()

✅ 의미:

  • object는 뷰(View) 클래스 내부에서 사용되는 **단일 객체(인스턴스)**입니다.
  • 주로 **CBV(Class-Based View)**나 DRF에서 사용되며, 현재 생성하거나 수정 중인 객체를 임시로 저장해두는 변수입니다.

🛠️ 사용 맥락:

class MyCreateView(CreateView):
    model = Person
    ...

    def form_valid(self, form):
        self.object = form.save()  # 저장한 객체를 기억해둠
        return super().form_valid(form)
  • 이후 get_success_url() 같은 곳에서 self.object.pk 등으로 활용됩니다.

💡 외우는 팁:

  • 단수형 object → 지금 다루고 있는 그 한 명

🧠 차이 한눈에 비교!

항목 objects object

의미 매니저 객체 현재 객체 인스턴스
위치 모델 클래스에서 사용 뷰 클래스 내부에서 사용
복수/단수 복수 → QuerySet 단수 → 인스턴스
용도 DB 조회, 생성 등 전체 제어 현재 하나의 객체 저장 및 활용

✅ 요약 정리

  • Person.objects.create() → DB에 새로운 사람 저장 (여러 명 중 하나)
  • self.object = ... → 지금 내가 방금 저장한 그 사람 하나

🔚 마무리 Tip

변수명은 비슷하지만 쓰이는 위치와 역할이 완전히 다릅니다.
혼동될 땐 이렇게 생각하세요:

objects는 DB 문을 여는 열쇠들 🔑🔑🔑
object는 지금 들고 있는 물건 하나 📦


이제 object와 objects는 헷갈릴 일이 없겠죠? 😊
궁금한 용어가 더 있다면 댓글로 남겨주세요!

'기술블로그-Django편' 카테고리의 다른 글

📌 Django에서의 팔로우 기능 모델링 완전 정복  (0) 2025.05.16
🧠 Django에서 name=name 의미 완전 정리하기  (0) 2025.05.15
🔍 Django REST Framework - GenericAPIView란?  (0) 2025.05.15
🤖 Pseudo Code란? (가짜 코드)  (0) 2025.05.15
🔄 클래스/함수 이름 변경 시 꼭 써야 할 리팩토링 기능 (Refactor → Rename)  (0) 2025.05.15
'기술블로그-Django편' 카테고리의 다른 글
  • 📌 Django에서의 팔로우 기능 모델링 완전 정복
  • 🧠 Django에서 name=name 의미 완전 정리하기
  • 🔍 Django REST Framework - GenericAPIView란?
  • 🤖 Pseudo Code란? (가짜 코드)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (800) N
      • Python (32)
      • 프로젝트 (115) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (154)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    hotcoffeecase
    newpoliticalparty
    smartphonedurability
    btsjungkook
    youngprofessionals
    americanlaw
    btsdischarge
    global politics
    뷔
    homebartrend
    titaniumcase
    basalcellcarcinoma
    bts
    chinanightlife
    btscomeback
    livebroadcast
    self-growth
    gpterror
    chatgpterror
    college reunions
    classaction
    trumpmuskclash
    lawsuitculture
    life reflection
    americaparty
    btsreunion
    urbantrends
    RM
    travel ban
    remittance
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
🔍 Django의 object vs objects 완전 정리!
상단으로

티스토리툴바