ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [개발공부] 토대 만들기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번은 없었다

     

    댓글

Designed by Tistory.