Notice
Recent Posts
Recent Comments
Link
터칭 데이터
장고(Django) 쉘에서 데이터 수정하고 삭제하기 본문
쉘에서 데이터 수정하기
>>> from polls.models import *
>>> q = Question.objects.last()
>>> q
<Question: 제목: abc, 날짜: 2023-11-01 05:51:02.905096+00:00>
>>> q.question_text
'abc'
>>> q.question_text = q.question_text + '???'
>>> q.question_text
'abc???'
>>> q.save()
쉘에서 데이터 삭제하기
>>> choice = Choice.objects.last()
>>> choice
<Choice: c>
>>> choice.question.choice_set.all()
<QuerySet [<Choice: a>, <Choice: b>, <Choice: c>]>
>>> q = choice.question
>>> q
<Question: 제목: abc???, 날짜: 2023-11-01 05:51:02.905096+00:00>
>>> q.choice_set.all()
<QuerySet [<Choice: a>, <Choice: b>, <Choice: c>]>
>>> choice.delete() # 분명 delete로
(1, {'polls.Choice': 1})
>>> q.choice_set.all() # c를 테이블에서는 지웠지만
<QuerySet [<Choice: a>, <Choice: b>]>
>>> choice # 장고 쉘에서는 메모리 상에 남아있어
<Choice: c> # 쉘에서는 조회가 된다.
>>> choice.choice_text # 당연히 .(필드명)으로도 데이터가 조회된다.
'c'
>>> choice.id # 단 테이블에서는 정상 삭제되었으므로 id가 조회되지 않는다.
>>> choice.save() # 쉘 메모리에 남아있다면 save()로 다시 DB에 입력할 수 있다.
# Question의 'abc'를 참조하는 Choice의 'a', 'b', 'c'는 전부 삭제
>>> q = Question.objects.get(id=4)
>>> q
<Question: 제목: abc???, 날짜: 2023-11-01 05:51:02.905096+00:00>
>>> q.choice_set.all()
<QuerySet [<Choice: a>, <Choice: b>, <Choice: c>]>
>>> q = q.choice_set.all()
>>> q
<QuerySet [<Choice: a>, <Choice: b>, <Choice: c>]>
>>> q.delete()
주석 부분을 잘 확인하세요.
'장고 (Django)' 카테고리의 다른 글
장고(Django) 모델 필터링(Model Filtering) 2 (0) | 2023.11.01 |
---|---|
장고(Django) 모델 필터링(Model Filtering) (0) | 2023.11.01 |
장고(Django) 쉘에서 데이터 입력하기 (0) | 2023.11.01 |
장고(Django) 현재 시간 구하기 (0) | 2023.11.01 |
장고(Django) - 쉘(Shell) & 쉘에서 모델 다루기 (0) | 2023.11.01 |