UserCreationForm {django}

  • django forms
  • Using the Django authentication system {doc}
    • models.User {doc}
    • 장고의 인증(authentication) 시스템은 인가(authorization)시스템과 결합되어있다. User 객체는 확장이 용이한 기본적인 형태의 인증 시스템으로, 회원가입, 로그인 절차와 밀접한 연관을 갖고 있다.
    • username, password, email, first_name, last_name 외에도 많은 attribute들이 있지만 걔네들은 다 옵셔널임.
  • forms.UserCreationForm {doc} | django forms
    • 세개의 필드를 가지고 있다. username, password1, password2
    • 추가하고 싶은 필드가 있으면... 뭐 그냥 상속하면 된다. 그래서 아래 코드의 UserRegisterForm의 필드로 email이 들어있는거다.
      • 심지어 email 필드에 대한 기본정의조차 장고에서 제공해준다... | forms.EmailField

0014.1 Django 🎈에서 회원가입 폼을 만들 때 사용한 클래스를 한 번 보자. 이메일은 기본으로 제공이 안되어 내가 추가한 걸 볼 수 있는데, Meta 얘는 도대체 뭐냐?

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm


class UserRegisterForm(UserCreationForm):
    """pre-built user registration forms.... SICK!"""
    email = forms.EmailField()

    class Meta:
        """details"""
        model = User
        fields = ['username', 'email', 'password1', 'password2']

django internal class Meta