37번째 줄: |
37번째 줄: |
| | | |
| 애플리케이션 디렉토리의 model.py에서 정의한다.<syntaxhighlight lang="python"> | | 애플리케이션 디렉토리의 model.py에서 정의한다.<syntaxhighlight lang="python"> |
| + | from django.db import models |
| + | |
| class 모델명(models.Model): # 이게 하나의 테이블이 된다. | | class 모델명(models.Model): # 이게 하나의 테이블이 된다. |
| 속성 = model.옵션(옵션) | | 속성 = model.옵션(옵션) |
65번째 줄: |
67번째 줄: |
| !설명 | | !설명 |
| |- | | |- |
− | |admin.py 수정 | + | |등록 |
− | |테이블을 만들었다고 해서 admin페이지에 테이블이 바로 보이는 것은 아니다. admin.py에서<syntaxhighlight lang="python"> | + | |테이블을 만들었다고 해서 admin페이지에 테이블이 바로 보이는 것은 아니다. |
| + | admin.py에 추가.<syntaxhighlight lang="python"> |
| from 어플명.models import 테이블1, 테이블2, .. | | from 어플명.models import 테이블1, 테이블2, .. |
| | | |
| admin.site.register(테이블1) | | admin.site.register(테이블1) |
| + | </syntaxhighlight>형태로 admin.py를 수정해주어야 한다. |
| + | |- |
| + | |여러 칼럼으로 보고 싶을 때 |
| + | |단순히 제목만 보는 게 아니라 여러 항목들을 표 형태로 보고 싶을 때. |
| + | admin.py에 추가한다.<syntaxhighlight lang="python"> |
| + | @admin.register(모델) |
| + | class ModelNameAdmin(admin.ModelAdmin): # 일반적으로 모델명Admin 형태로 클래스명을 짓는다. |
| + | list_display = ['칼럼', '칼럼2'] # 함께 보고 싶은 칼럼을 넣어준다. |
| </syntaxhighlight>형태로 admin.py를 수정해주어야 한다. | | </syntaxhighlight>형태로 admin.py를 수정해주어야 한다. |
| |} | | |} |
82번째 줄: |
93번째 줄: |
| |__str__ | | |__str__ |
| |모델클래스 안에 정의한다. | | |모델클래스 안에 정의한다. |
| + | |
| + | |
| | | |
| | | |
| 객체를 문자열로 표현하기 위한 함수로, Admin페이지 등에서 객체를 보여주기 위해 쓰인다. | | 객체를 문자열로 표현하기 위한 함수로, Admin페이지 등에서 객체를 보여주기 위해 쓰인다. |
| + | |
| + | (이게 없으면 무슨 모델의 몇번째 객체라고만 떠서 구분하기가 어렵다.) |
| |<syntaxhighlight lang="python"> | | |<syntaxhighlight lang="python"> |
| def __str__(self): | | def __str__(self): |
− | return self.subject # 객체의 속성 중 subject를 반환하여 보여준다. | + | return self.subject # 모델의 속성 중 subject를 반환하여 보여준다. |
| + | </syntaxhighlight> |
| + | |- |
| + | | |
| + | |제목이 아니라 여러 내용들을 조합하고 싶다면 다음과 같이 쓴다. |
| + | |<syntaxhighlight lang="python"> |
| + | def __str__(self): |
| + | return f'제목:{self.subject}, 좋아요:{self.likeCount}, 날짜:{self.date}' |
| </syntaxhighlight> | | </syntaxhighlight> |
| |} | | |} |
107번째 줄: |
129번째 줄: |
| *단순 변형이 가해진 경우 python manage.py migrate를 해준다. | | *단순 변형이 가해진 경우 python manage.py migrate를 해준다. |
| |} | | |} |
| + | |
| + | = 관련에러 = |
| + | |
| + | === No changes detected === |
| + | <code>python manage.py makemigrations</code>를 수행했을 때 발생하는 에러. 다음과 같은 2가지 해결책이 있다. |
| + | |
| + | # settings.py에 해당 app을 등록하지 않은 경우. INSTALLED_APPS에 해당 앱을 등록한다. |
| + | # 원인 불명.(아마 서버에서 모델 없이 사용하다가 뒤늦게 등록할 때 발생하는듯.) 앱이 제대로 등록되어 있음에도 안되는 경우. 그럴 땐 <code>python manage.py makemigrations 앱이름</code>으로 지정해주면 된다. |
| + | |
| [[분류:장고 모델]] | | [[분류:장고 모델]] |