# TIL 웹개발 - Django form, model 등등 찾아보기

Django를 배우다보니 어느순간 기억하는데 한계가 오기 시작한다. 그 이유는 import하는 함수, 데코레이터, 모델, 폼 등등 너무 복잡하기 때문인데... 이참에 정리해보고 여기서 한번에 확인하자..

(자동 완성은 from 머시기도 다 찾아주나...) 

### Accounts 관련

- 로그인 / 로그아웃 기능

    - auth_login(request, user)를 사용한다. 

    - user가 없는 경우 request.user를 사용한다.

    - 로그아웃할때 자동으로 세션를 삭제해준다.

```javascript
from django.contrib.auth import login as auth_login
from django.contrib.auth import logout as auth_logout
```

- 로그인 폼

```javascript
from django.contrib.auth.forms import AuthenticationForm
```

- 현재 프로젝트에서 사용되는 사용자 모델 가져오는 기능

    - 커스텀 사용자 모델을 사용하는 경우, settings.py에 AUTH_USER_MODEL을 설정해야한다.

    - AUTH_USER_MODEL를 설정하지 않으면 기본 사용자 모델을 사용한다.

```javascript
from django.contrib.auth import get_user_model
```

- 회원가입 /  회원 정보 수정 폼

```javascript
from django.contrib.auth.forms import UserChangeForm
from django.contrib.auth.forms import UserCreationForm
```

- 비밀번호 변경 폼

```javascript
from django.contrib.auth.forms import PasswordChangeForm
```

- 데코레이터

```javascript
from django.views.decorators.http import require_POST
from django.views.decorators.http import require_http_methods
from django.contrib.auth.decorators import login_required
```

For the site tree, see the [root Markdown](https://slashpage.com/kyugntae-ai.md).
