레코드 등록 방법에 대해서
314
작성한 질문수 1
강의에서 아래처럼 두가지 방법이 소개되어있는데 차이점이 있으면 알려주세요
1)post = Post.objects.create(title='this is title', content='this is content')
post.save()
2)Restaurant(name=’Deli Shop’, address=’Gangnam’).save()
답변 1
1
1번과 2번 둘 다 동일한 역할을 하지만 1번의 경우
Post.objects.create(title='this is title', content='this is content')
이 코드가 실행되는 시점에 모델의 인스턴스 생성 뿐만 아니라 데이터베이스의 저장까지 이루어집니다.
이후 post란 인스턴스의 값을 아래의 예시처럼 수정했을 경우
post.content = 'modified'
다음으로 post.save()를 실행시키면 수정된 값이 데이터베이스에 반영됩니다.
2번의 경우에는
Restaurant(name=’Deli Shop’, address=’Gangnam’)
이 코드가 실행되면 모델의 인스턴스까지만 생성되고 데이터베이스로의 실제 저장은 이루어지지 않는데요.
단순히 인스턴스를 초기화하기 위한 생성자로 보시면 되고
이렇게 생성된 인스턴스에 save()를 호출해주어야 실제 데이터가 저장된다는 차이점이 있습니다.
2번은 아래와 같이 2줄로도 풀어서 작성할 수 있습니다.
restaurant = Restaurant(name=’Deli Shop’, address=’Gangnam’)
restaurant.save()
종합하면 create()를 사용하면 기존의 2번과 같은 생성자 호출과 동시에 save() 함수의 역할도 같이 수행한다고 보시면 됩니다.
빨간 줄이 뜨네요
0
137
1
import 문장에 빨간줄이 뜹니다.
0
156
1
putty 관련 질문
0
192
1
uWSGI 세팅하기_ 최종 502 bad gateway error
0
809
1
putty 접속관련
0
305
1
[리뷰 삭제하기] 삭제시 path 에러문구나옴.
0
386
1
데이터 새성시 forms.py, models.py 관련문의
0
308
1
'폼으로 데이터 전송하기' 강의 소리가 갑자기 작아짐
0
318
1
[스태틱]index.html 의 이미지를 변경하려면 ?
0
508
1
WARNINGS: ?: (staticfiles.W004) The directory 'C:\projects\first-django\static' in the STATICFILES_DIRS setting does not exist.
0
427
1
사진 넣고 엑박...ㅜㅜ
0
335
0
간단한 웹 페이지 띄우기 강의 10분 후반쯤
0
419
0
리뷰 등록 구현하기 4:26 url 오류
0
347
1
create.html
0
361
1
502 badgateway 오류가 떠요
0
284
0
putty에서 막혔네요 ㅠㅠ
0
355
2
django) 한 폼에 여러 모델 데이터 입력하는 경우
0
328
0
파이참 안에서 가상환경 접속이 안 됩니다.
0
691
1
settings.py
0
305
1
만약 웹앱을 업데이트할경우는 어떻게 해야하나요?
0
374
1
CSS 가운데 정렬 적용 안됨
0
4833
3
NameError: name 'os' is not defined
2
1107
1
1분 26초에 post=Post.objects.create(title="this is title", content="this is content")부분이 실행이 안됩니다.
0
267
1
virtualenv가 설치가 안됩니다..
0
439
1





