우리 프로젝트의 어떤 데이터 모델을 저장할 것인지에 대한 데이터 명세서이자 구조
class User(AbstractUser):
GENDER_CHOICES = [
('M', 'Male'),
('F', 'Female'),
('C', 'Custom'),
]
name = models.CharField(_("Name of User"), blank=True, max_length=255)
user_name = models.CharField(blank=True, max_length=255)
profile_photo = models.ImageField(blank=True)
website = models.URLField(blank=True)
bio = models.TextField(blank=True)
email = models.TextField(blank=True, max_length=255)
phone_number = models.CharField(blank=True, max_length=255)
gender = models.CharField(blank=True, choices=GENDER_CHOICES, max_length=255)
followers = models.ManyToManyField("self")
following = models.ManyToManyField("self")
다음 django에서 ManyToManyField("self")를 통해 User 내에서 팔로워, 팔로잉을 다:다 관계로 만들 수 있다.
[참고] 명준MJ - django로 만드는 instagram (#3 데이터 모델(테이블) 만들기, db 설명)