-
[개발공부] 토대 만들기2개발/프로젝트1(점프 투 장고) 2022. 12. 7. 15:56
명령 프롬프트로 앱이 필요로 하는 테이블을 생성했다
(mysite) C:\projects\mysite>python manage.py migrate
그리고 pybo/models.py에 클래스를 사용해서 질문 모델과 답변모델을 만들었다
from django.db import models class Question(models.Model): subject = models.CharField(max_length=200) content = models.TextField() create_date = models.DateTimeField() class Answer(models.Model): question = models.ForeignKey(Question, on_delete = models.CASCADE) content = models.TextField() create_date = models.DateTimeField()
그리고 config/settings.py에 pybo앱을 추가했다
INSTALLED_APPS = [ 'pybo.apps.PyboConfig', ... ]
그리고 다시 명령 프롬프트에서 아래와 같이 실행했다
(mysite) C:\projects\mysite>python manage.py makemigrations (mysite) C:\projects\mysite>python manage.py migrate
그리고 아래와 같이 장고셸을 실행하고 Question, Answer 모델을 임포트 하고 모델 데이터를 두개 만든다
(mysite) C:\projects\mysite>python manage.py shell >>> from pybo.models import Queestion, Answer >>> from django.utils import timezone >>> q = Question(subject='pybo가 무엇인가요?', content='pybo에 대해서 알고 싶습니다.', create_date=timezone.now()) >>> q.save() >>> q = Question(subject='장고 모델 질문입니다.', content='id는 자동으로 생성되나요?', create_date=timezone.now()) >>> q.save()
결과를 보면 번호만 나와서 보기가 불편하니까 내용을 볼 수 있게 pybo/models.py를 아래와 같이 수정했다
from django.db import models class Question(models.Model): subject = models.CharField(max_length=200) content = models.TextField() create_date = models.DateTimeField() def __str__(self): return self.subject class Answer(models.Model): question = models.ForeignKey(Question, on_delete = models.CASCADE) content = models.TextField() create_date = models.DateTimeField()
그리고 다시 명령 프롬프트 장고 셸에서 두번째 속성을 수정하고 첫번째 모델 데이터를 삭제했다
>>> q = Question.objects.get(id=2) >>> q.subject = 'Django Medol Question' >>> q.save() >>> q = Question.objects.get(id=1) >>> q.delete()
이렇게 삭제하고 1번을 조회하면 1번은 없었다
'개발 > 프로젝트1(점프 투 장고)' 카테고리의 다른 글
[개발공부] 토대 만들기1 (0) 2022.12.06 [개발공부] 221205 프로젝트 시작 (0) 2022.12.06