전 게시물에서 장고의 models.py에 class를 작성하였다.
이번 게시물에서는 class의 Meta, __str__을 알아보자
전 게시물
[Django] 장고 sqlite3 사용하기
python에서 제공해주는 sqlite3을 사용하여 데이터를 저장해보자. sqlite는 서버가 아닌 응용프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다. 1. 프로젝트를 생성한 뒤 app을 생성해준다. a
e-you.tistory.com
from django.db import models
# Create your models here.
class BlogDB(models.Model):
title = models.CharField(max_length=20)
content = models.CharField(max_length=100)
아무런 조건도 주지 않았을때이다.
Meta
필드 속성 외에 필요한 파라미터가 있으면 Meta 내부 클래스로 정의한다.
별칭, 복수 별칭, 테이블명, 정렬방법등을 정의
from django.db import models
# Create your models here.
class BlogDB(models.Model):
title = models.CharField(max_length=20)
content = models.CharField(max_length=100)
class Meta:
verbose_name = '블로그 게시글'
verbose_name_plural = '블로그 게시글 모음'
ordering = ('title',)
[verbose_name]
사용자가 읽기 쉬운 모델 객체의 이름으로 관리자 화면 등에서 표시된다. 영어를 기준으로 단수형이다.
[verbose_name_plural]
사용자가 읽기 쉬운 모델 객체의 이름으로 관리자 화면 등에서 표시되는 것은 동일하나 영어를 기준으로 복수형이다.
한국어에서는 굳이 단수와 복수를 구별해 사용하지 않으므로 verbose_name과 동일하게 쓸 수 있다.
verbose_name_plural 옵션을 지정하지 않으면 verbose_name에 s를 붙인다.
[ordering]
모델의 정렬 순서를 지정하며 여러 개를 지정할 경우 필드 이름을 리스트로 나열한다. 기본값은 오름차순으로 정렬하고 -를 붙이면 내림차순으로 정렬한다.
__str__
해당 클래스로 만들어진 인스턴트 자체를 출력할 때, 문자열로 설명해주기 위한 메서드이다.
[ __str__을 사용하지 않았을 때 ]
change blog db 아래 글자가 인스턴스 자체로 보이는 모습을 볼 수 있다.
datas = BlogDB.objects.all()을 사용하여 datas를 출력해보자.
인스턴스 자체로 표현되는 것을 볼 수 있다.
[ __str__을 사용하였을 때 ]
from django.db import models
# Create your models here.
class BlogDB(models.Model):
title = models.CharField(max_length=20)
content = models.CharField(max_length=100)
def __str__(self):
return self.title
change blog db 아래 글자가 title로 보이는 모습을 볼 수 있다.
datas = BlogDB.objects.all()을 사용하여 datas를 출력해보자.
인스턴스 자체가 아닌 문자열로 표현되는 것을 볼 수 있다.
'WEB' 카테고리의 다른 글
[spring boot] gitignore DB 정보 제외하기 (0) | 2022.03.12 |
---|---|
[Django] ORM (0) | 2022.01.22 |
[Django] 장고 admin에 앱 모델 등록하기 (0) | 2022.01.22 |
[Django] 장고 admin 페이지 사용하기 (0) | 2022.01.22 |
[Django] 장고 sqlite3 사용하기 (0) | 2022.01.22 |