🔍 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 |