class User(AbstractUser) 사용시 ForeignKey 사용법

2024. 10. 30. 12:02django/Model

두 가지 코드 모두 동일한 의미를 가집니다.

첫 번째 코드:
```python
from django.db import models
from django.contrib.auth import get_user_model
User = get_user_model()

class Plan(models.Model):
    # ...
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='plans')
```

두 번째 코드:
```python
from django.conf import settings  # User = get_user_model()
class Plan(models.Model):
    # ...
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='author_question')
```

두 경우 모두 Django의 기본 사용자 모델을 참조하는 것입니다. 다만 접근 방식이 다릅니다.

1. 첫 번째 코드는 `django.contrib.auth.get_user_model()` 함수를 사용하여 현재 프로젝트에서 사용 중인 사용자 모델을 가져옵니다.
2. 두 번째 코드는 `django.conf.settings.AUTH_USER_MODEL` 설정 변수를 사용하여 사용자 모델을 참조합니다.

두 방식 모두 올바르며, 프로젝트에서 사용되는 사용자 모델을 사용할 수 있습니다. 보통 `get_user_model()` 함수를 사용하는 것이 더 일반적입니다.