기술블로그-Django편

🔍 Django에서 Model.objects.get(code=code)가 뭔 뜻이야?

Chansman 2025. 5. 14. 11:46

🔍 Django에서 Model.objects.get(code=code)가 뭔 뜻이야?


✅ 코드 구조 먼저 보기

short_url = ShortURL.objects.get(code=code)

이 코드에서 code가 두 번 나오니까 헷갈릴 수 있어요!
하지만 각각의 code는 다른 의미를 가집니다.

위치 의미 예시

code= 왼쪽 모델의 필드명 ShortURL 모델의 code 컬럼
=code 오른쪽 뷰 함수 매개변수 또는 지역 변수 사용자가 URL로 입력한 "abc123"

✅ 쉽게 풀어보면?

예를 들어 사용자가 아래 주소로 접속했다고 해볼게요:

http://127.0.0.1:8000/abc123/

그리고 urls.py에서 아래처럼 설정되어 있고:

path('<str:code>/', views.redirect_view, name='redirect')

뷰 함수는 이렇게 되어 있다면:

def redirect_view(request, code):
    short_url = ShortURL.objects.get(code=code)
  • URL에서 "abc123"이 code 변수로 들어오고
  • 이걸 이용해 DB에서 code 필드가 "abc123"인 ShortURL 객체를 찾는 거예요

결국:

ShortURL.objects.get(code="abc123")

과 같은 동작입니다.


✅ 변수명을 다르게 써보면?

def redirect_view(request, url_code):
    short_url = ShortURL.objects.get(code=url_code)
  • 이 경우 url_code는 URL 파라미터 변수
  • 왼쪽 code는 여전히 모델의 필드명

변수 이름이 다르기 때문에 더 헷갈리지 않고 의도가 명확해지기도 해요!


✅ 실전 예제

# models.py
class ShortURL(models.Model):
    code = models.CharField(max_length=10, unique=True)
    original_url = models.URLField()

# views.py
from django.shortcuts import redirect, get_object_or_404

def redirect_view(request, code):
    short_url = get_object_or_404(ShortURL, code=code)
    return redirect(short_url.original_url)

사용자가 /naver123/으로 접근하면:

  • code="naver123"로 view에 들어오고
  • DB에서 ShortURL 모델 중 code="naver123"인 데이터를 찾고
  • 해당 original_url로 리다이렉트!

✅ 정리 요약

요소 설명

ShortURL.objects.get(...) DB에서 특정 조건에 맞는 객체 1개 찾기
code=code 왼쪽: 모델의 필드명 / 오른쪽: 전달된 값 (URL 파라미터 등)
같은 이름 써도 됨 파이썬이 왼쪽은 키(key), 오른쪽은 값(value)으로 구분함

💡 헷갈릴 땐 오른쪽 변수명을 url_code처럼 다르게 만들어보면 이해가 쉬워져요!

필요하면 filter()와 get()의 차이도 함께 정리해드릴게요 😎