<앨범 클레스 만들고 저장>




- NEW 라는 인스턴스 생성하고 각각의 컬럼값을 넣어준다. 그 후 save() 하면 Album DB 에 값이 들어감.



<Album 클래스와 연결된 Foreign Key 인 Song 클래스 추가하는 방법>


- track 인스턴스 만들고 각각의 컬럼값 넣어준 뒤 저장한다. 그리고 song_set.all() 로 값을 보면 저장되어있다.



<create 함수를 이용해서 save 생략하고 저장하는 방법>



- 이렇게 하면 save() 와 인스턴스 생성을 따로 하지 않아도 됨!



창고 count() 함수



shell 창



- 먼저 Album.objects.get(pk=1) 으로 첫번째 앨범 가져옴. 그리고 song 인스턴스 생성한뒤 song.album 에 가져온 첫번째 pk=1 앨범을 넣어주고 save 한다



- album1 = Album.objects.get(pk=1) 처럼 변수를 이용했는데 이렇게 해도 괜찮지만 직접 song.album = Album.objects.get(pk=1) 해줘도 똑같다.


- 안에 값은 바꾸고 save() 해주면 바뀜

'Etc' 카테고리의 다른 글

Django URL 하드코딩하지 않고 쓰기 <20>  (0) 2018.08.12
Django Foreign Key 활용 <18>  (0) 2018.08.12
Django Http404 사용하기 <16>  (0) 2018.08.12
Django template 활용법 <14>  (0) 2018.08.12
백준 4344 임시  (0) 2018.07.10

views.py

from django.http import Http404
from django.shortcuts import render
from django.http import HttpResponse
from .models import Album


def index(request):
all_albums = Album.objects.all()
ctx = {
'all_albums': all_albums
}
return render(request, 'music/index.html', ctx)


def detail(request, album_id):
try: # 에외 처리
album = Album.objects.get(id=album_id)
except Album.DoesNotExist:
raise Http404("Album does nor exist")
return render(request, 'music/detail.html', {'album': album}) # ctx 대신 이렇게 쓸 수 도 있다

- django 의 http 안에 Http404 를 import 해준다. 그러면 찾고자하는 요소가 없을때 404 페이지를 띄울 수 있다.


- album = Album.objects.get(id=album_id)  -> url 에서 album_id 를 get 해서 id (pk) 값으로 넘겨줌. 그런데 id (pk)가 없으면 http404 에러를 일으키고 아니면 detail 을 render 해서 보여준다. 


- tyr~except 예외처리


- return render 에서 ctx 대신 직접 사용할 변수를 넣어준것. 

'Etc' 카테고리의 다른 글

Django Foreign Key 활용 <18>  (0) 2018.08.12
Django Foreign Key 에 Data 저장하기  (0) 2018.08.12
Django template 활용법 <14>  (0) 2018.08.12
백준 4344 임시  (0) 2018.07.10
백준 파이썬 1546  (0) 2018.07.10

+ Recent posts