반응형
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 |