Django Web Framework (3)

Sine
3 min readJul 6, 2021

스파르타 코딩 클럽 수업에 관심 있다면? 링크타고 할인받고 시작해 보는것도 나쁘지 않아요.

광고글이 아님을 밝히며, 이 글은 Django Web Framework 셋째주 개발일지 입니다.

  1. 클래스의 상속

클래스가 함수처럼 매개변수를 가진것처럼 보일때, 클래스가 매개변수를 가지는 것이 아니라, 다른 클래스의 기능들을 사용하게 해주는 상속을 가능하게 해주는 코드의 형태

상속의 기능을 이용해서 장고에서 제공하는 auth_user 정보에다 bio라는 새로운 정보를 더한 UserModel을 auth_user대신에 사용할수 있게됨.

#user/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.
class UserModel(AbstractUser):
class Meta:
db_table = "my_user"

bio = models.CharField(max_length=256, default='')

이때 메인 app의 settings.py부분에 default auth_user가 아닌 대체된 모델의 사용을 인지시켜줘야함.

AUTH_USER_MODEL = 'user.UserModel'

2. 1번에서 변경한 User 모델을 데이터베이스에 적용시켜보기

터미널을 사용해서

$ python manage.py makemigrations 를 작성하고 엔터를 누르면 변경된 부분에 대한 정보들이 나열됨

$ python manage.py migrate 를 작성하고 엔터를 누르면 데이터베이스에 적용이됨.

데이터베이스 새로고침을 해서 변경된 내용 확인 가능.

알면 좋은점: 새로 생성한 유저모델과 기존의 모델을 합쳤을때, 데이터까지 함께 합쳐지는 것이 아님.

상속을 꼭 사용해야 할 필요는 없겠지만, 장점이라고 하면 장고에서 기본적으로 생성해주는 기능을 상속받고 거기에 내가 원하는 추가 기능/정보 들을 덧붙여 새로운 모델을 만들기가 수월함.

3. form 태그와 type이 submit 인 button

form 태그 안에 글을 적을수 있고, form태그 내부에 submit을 할수 있는 버튼이 있다면, form 태그 안의 내용을 서버로 보내주게됨

이때 form 태그에 “어디에다” action을 취할것인지 “어떤” method를 사용할 것인지 추가적으로 설정을 해줘야 하고, {% csfr_tocken %}까지 붙여주면 됨.

이때 서버로 보내는 것의 name을 기억해야 뭉뚱그려진 정보중 어떤 정보를 뽑아서 보낼것인지 정할수 있게됨.

--

--