예를 들어 이런게 models에 있다고 치자, 그러면 forms에서 혼동될 수 있는것이 바로 model, 그리고 상속이다.
참고로 지금 get_user_model()은 위에서 적은 User이다. 자 그러면 저 model은 뭘까?
여기서 설명하겠습니다. 먼저 UserChangeForm을 상속 받는다는 것은, 그 안에 있는 여러가지 fields들을 쓰겠다는 뜻입니다. 어? 그러면 저 fields들은 뭔데?라고 하실 수 있으나
자 좀 많이 헷갈리긴 했는데, 설명하겠습니다. 먼저 저 get_user_model()은 저의 커스텀 User 모델을 말합니다. 그 유저모델은 위에 적혀있듯 password, created_at, updated_at....이렇게 있습니다. 하지만 저희는 로그인을 할 때, 회원가입을 할 때, 실제로 다 적지는 않습니다.
UserChangeForm은 기본적으로 거의 다 제공합니다. first_name, last_name, password 등등. 그런데 만약 저렇게 model에 커스텀 User를 넣으면 상황이 이렇게 됩니다 UserChangeForm -> User야, 너가 지금 가지고 있는 데이터는 뭐뭐 가지고있어? User -> 어? 난 password랑 created_at이랑...이것밖에 없어.... UserChangeForm -> 어 그러면 날 다 채워넣기는 좀 그러겠는걸? User -> 일단을 fields를 통해서 내가 줄 데이터를 제한적으로 만들면 될 것 같아. 이제 이해가 좀 가시나요? 즉, 3번 거른다고 생각하시면 편합니다. 먼저 정말 많은 데이터를 받는 UserChangeForm은 커스텀 유저가 준 데이터 만으로는 부족합니다. 그래서 일단은 User가 준 데이터만 받습니다. 그러면 User 데이터가 가지고 있는 데이터의 수로 줄어들게 되고(즉, 5개) 그것을 다시 fields가 제한적으로 바꿔주는 것입니다.
즉, 만약 password, created_at.....만 주는 상황이라면, fields가 다시 아, 나 그거 필요없어 password만 줘, 이렇식으로 바뀌게 되는 것입니다.