Django 로 게시판 만들기(2). member app models.py

.·2020년 7월 24일
0

게시판만들기

목록 보기
2/21

1. member app 의 모델 생성하기

무조건 봐야하는 링크
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Models

참고하기 좋은 링크
https://wikidocs.net/6667

from django.db import models

class BoardMember(models.Model):
    username    = models.CharField(max_length=100, verbose_name='유저ID')
    email       = models.EmailField(max_length=100, verbose_name='유저메일')
    password    = models.CharField(max_length=100, verbose_name='유저PW')
    created_at  = models.DateTimeField(auto_now_add=True, verbose_name='가입날짜')
    updated_at  = models.DateTimeField(auto_now=True, verbose_name='마지막수정일')

    def __str__(self):
        return self.username

    class Meta:
        db_table            = 'boardmembers'
        verbose_name        = '게시판멤버'
        verbose_name_plural = '게시판멤버'

class 는 붕어빵 틀이고 여기에서 나오는 객체는 붕어빵 이라고 생각한다. 각각의 객체를 정의하는 사용자이름, 이메일, 비밀번호, 생성날짜, 업데이트 날짜 들은 움직이지 않는 요소이다.

하나의 모델 클래스는 데이터베이스에서 하나의 테이블에 해당된다.

한편 게시판멤버가 뭔가를 한다, 움직이는 것을 정의할 때는 class 내에 함수 def 를 정의해 준다.

2. verbose_name

verbose_name

사용자가 읽기 쉬운 모델 객체의 이름으로 관리자 화면 등에서 표시된다. 영어를 기준으로 단수형이다.

verbose_name 옵션을 지정하지 않으면 CamelCase 클래스 이름을 기준으로 camel case 이와 같이 모두 소문자로 변경한다.

verbose_name_plural

사용자가 읽기 쉬운 모델 객체의 이름으로 관리자 화면 등에서 표시되는 것은 동일하나 영어를 기준으로 복수형이다.

한국어에서는 굳이 단수와 복수를 구별해 사용하지 않으므로 verbose_name과 동일하게 쓸 수 있다.

verbose_name_plural 옵션을 지정하지 않으면 verbose_name에 s를 붙인다.

3. auto_now_add, auto_now

블로그를 만든다고 생각해 보자.
Post라는 모델에서 수정일자에 사용되는것은 auto_now 이다.
이는 auto_now가 해당 모델이 save 될 때 마다 현재 날짜로 해당 필드를 갱신시키기 때문이다.

생성일자에 사용되는 것은 auto_now_add이다. auto_now_add는 해당 모델이 처음으로 save(모델 생성 시) 될 때 현재 날짜로 추가한다.

하지만 현재 적용된 것은 멤버의 회원가입에 대한 모델이다.
참고 블로그 : https://tomining.tistory.com/145

4. def str(self):

생성되는 객체의 타입을 문자열로 변환해서 보여주게 한다.

    def __str__(self):
        return self.username

생성된 객체가 username 으로 보이게 된다.
설정을 하지 않았을 시 object(1) 이렇게 표시된다.

5. class Meta:

db_table 은 데이터베이스에 저장되는 테이블명을 의미한다.
보통 클래스명의 복수형으로 표기한다.

profile
.

0개의 댓글