Django 모델에서 기본 키 참조: pk vs id

2024. 10. 10. 00:56·Django
반응형

 

Question.objects.get(pk=1000)과 Question.objects.get(id=1000)은 Django에서 동일한 결과를 반환한다. 여기서 pk는 "primary key"의 약자로, Django 모델에서 기본 키를 참조하는 짧은 표현이다. 두 표현의 차이와 pk를 사용하는 이유는 다음과 같다:

1. 명확성:

  • pk는 모델의 기본 키를 명시적으로 나타내므로, 모델의 기본 키가 무엇인지 확실히 알 수 있다.
  • id를 사용할 경우, id가 기본 키임을 알고 있는 경우에만 이해할 수 있다. 다른 필드명이 기본 키인 경우, id를 사용하면 혼동할 수 있다.

2. 유연성:

  • 모델에서 기본 키를 id가 아닌 다른 필드로 설정했을 때도 pk를 사용할 수 있다. 예를 들어, unique_id라는 필드를 기본 키로 설정하면 Question.objects.get(pk=1000)은 유효하지만 Question.objects.get(id=1000)은 오류를 발생시킨다.

3. 관습:

  • Django의 많은 개발자들은 기본 키를 다룰 때 pk를 사용하여 코드를 일관되게 유지한다. (기본 키를 참조할 때의 일반적인 관습)

결론:

  • 둘 중 어떤 것을 써도 작동하지만, 일반적으로 pk를 사용하는 것이 더 명확하고 유연하다. 기본 키를 나타낼 때 pk를 사용하는 것이 좋은 관행으로 여겨지므로, 가능하다면 pk를 사용하는 것이 좋다.
반응형
저작자표시 비영리 변경금지 (새창열림)

'Django' 카테고리의 다른 글

Django | 쿼리셋 내 객체 수  (0) 2022.09.22
Django | Error : you cannot alter to or from M2M fields, or add or remove through= on M2M fields  (0) 2022.08.30
DRF | 페이지네이션  (0) 2022.08.30
Django | models : verbose_name  (0) 2022.08.20
Django | ORM : on_delete=models.CASCADE  (0) 2022.08.14
'Django' 카테고리의 다른 글
  • Django | 쿼리셋 내 객체 수
  • Django | Error : you cannot alter to or from M2M fields, or add or remove through= on M2M fields
  • DRF | 페이지네이션
  • Django | models : verbose_name
이라후
이라후
  • 이라후
    화이팅
    이라후
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • TIL (23)
      • 기타 (26)
      • Python (14)
      • Django (10)
      • JavaScript (8)
      • git & GitHub (8)
      • Web (10)
      • Go (3)
      • wecode (31)
  • 반응형
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이라후
Django 모델에서 기본 키 참조: pk vs id
상단으로

티스토리툴바