# models.py
class User(models.Model):
username = models.CharField("사용자 계정", max_length=50)
password = models.CharField("비밀번호", max_length=50)
# User라는 테이블에 username, password라는 필드가 존재함
# 사용자가 회원가입을 할 때마다 레코드가 하나씩 추가됨.
# 즉, 레코드란 데이터베이스에 저장 되는 값들을 지칭하는 것
username = models.CharField("사용자 계정", max_length=50, unique_key=True)
# UK는 여러 개 일 수는 있다! 다만 이것은 다른 레코드 값들과는 다른 특별한 값
password = models.CharField("비밀번호", max_length=50, primary_key=True)
# PK는 두 개 있다면 바로 오류를 내뱉는다! 없어도, 두 개 이상이어도 안되는 값
# models.py
from django.db import models
# 사용자 모델 : 기본적인 사용자 정보
class User(models.Model):
username = models.CharField("사용자 계정", max_length=20, unique=True)
email = models.EmailField("이메일 주소", max_length=100, unique=True)
password = models.CharField("비밀번호", max_length=60)
fullname = models.CharField("이름", max_length=20)
join_date = models.DateTimeField("가입일", auto_now_add=True)
# 사용자 프로필 모델 : 사용자 상세 정보
class UserProfile(models.Model):
# 사용자를 One-to-One 으로 바라봄
user = models.OneToOneField(to=User, verbose_name="사용자", on_delete=models.CASCADE)
# 사용자를 Many-to-Many 로 바라봄
hobby = models.ManyToManyField(to="Hobby", verbose_name="취미")
introduction = models.TextField("소개")
birthday = models.DateField("생일")
age = models.IntegerField("나이")
# 취미 모델
class Hobby(models.Model):
name = models.CharField("취미", max_length=50)
위 코드를 예시로 사용자모델을 참조하는 사용자 프로필의 유저와,
취미모델을 참조하는 사용자 프로필의 취미는 각각 사용자모델과, 취미모델의 레코드가 삭제된다면 어떻게 되는 것인가?
DateField와 DateTimeField는 default 값을 여러 형태로 지정할 수 있다.
❌ 위의 값을 두 개 이상 같이 쓸 수 없다!
모델링 한 테이블들을 admin에서 추가, 확인, 수정하기
# admin.py
from django.contrib import admin
from user.models import User, UserProfile, Hobby
admin.site.register(User)
admin.site.register(UserProfile)
admin.site.register(Hobby)
admin 커스텀은 심화과정에서--LINK(차후 추가)