기술블로그-Django편
🧠 Django에서 name=name 의미 완전 정리하기
Chansman
2025. 5. 15. 21:46
🧠 Django에서 name=name 의미 완전 정리하기
Django에서 아래와 같은 코드를 자주 보셨을 거예요:
person = Person.objects.create(name=name, age=age)
처음 보면 헷갈릴 수 있는 부분이 바로 이 name=name 구조인데요, 이 글에서는 좌변과 우변의 차이, 그리고 그 의미를 쉽고 명확하게 정리해드릴게요!
✅ name=name은 무슨 뜻인가요?
name = request.POST.get("name")
person = Person.objects.create(name=name)
- 왼쪽 name → 모델(Person)의 필드 이름입니다. 즉, 데이터베이스 컬럼
- 오른쪽 name → 위에서 정의한 변수입니다 (사용자 입력값 등)
🧠 쉽게 말하면: “모델의 name 필드에, 내가 받아온 name 값을 넣는다” 라는 뜻이에요.
🎯 실제 사용 흐름 예시
def create_view(request):
if request.method == "POST":
name = request.POST.get("name") # 👉 사용자 입력값을 변수에 저장
age = request.POST.get("age")
# 🔥 Person 모델에 객체 생성 (자동 저장)
person = Person.objects.create(name=name, age=age)
- 사용자가 HTML 폼에 입력한 name, age를 가져옴
- create()를 통해 바로 DB에 저장
- 각각의 필드에 변수 값을 전달하는 구조
🧾 필드명과 변수명이 다를 수도 있나요?
네, 다르게 할 수도 있어요:
user_input = request.POST.get("name")
Person.objects.create(name=user_input)
- 이 경우: name=user_input
- 왼쪽은 모델 필드, 오른쪽은 내가 만든 변수
🎯 이름이 같을 필요는 없지만, 같으면 더 직관적이고 편해요.
✅ 정리표
항목 의미 예시
name (왼쪽) | 모델의 필드명 | Person 클래스의 컬럼 |
name (오른쪽) | 변수에 저장된 값 | request.POST.get("name") 결과 |
🔚 마무리 요약
- name=name 구조는 모델 필드에 내가 준비한 값을 넣는 것
- 이름이 같아 보이지만, 왼쪽은 필드, 오른쪽은 변수예요
- 다르게 써도 되지만, 같게 쓰면 코드가 더 읽기 쉬워요 👀
이제 name=name의 의미가 명확해지셨죠? 🎯
다음에는 .save() 방식과 get_or_create() 차이도 정리해볼게요!