Django
pk, path converter, get_object_or_404, 글자수 제한, 링크달기
Like A Flowing Cloud
2021. 6. 14. 15:07
1. 글자수 제한
모델에 함수 하나만 추가하면 됨.
<models.py>
def summary (self):
return self.body[:100]
<home.html>
{{blog.summary}} ( O )
{{blog.body}} ( X )
2. more에 링크달기
<a href = ""> ...more </a>
3. 링크를 클릭했을때 detail.html 페이지 내보내기
● pk : 몇번째 블로그 객체를 호출하는지 알아야하고
● path convereter : url은 .../blog/{객체번호} 처럼 객체에 따라서 달라야 할 것
● get_object_or_404 : 없는 객체번호를 호출할 경우 에러페이지 호출
( 1 ) <urls.py> url 설계
urlpatterns = [
path('blog/<int:blog_id>)', blog.views.detail, name='detail'),
]
▶ 다음의 url 로 접속 시 blog_id를 views에 detail 함수로 넘겨주게 됨.
▶ <int:blog_id> : path converter : 여러 객체들을 다루는 계층적인 url을 자동으로
쉽고 편하게 생성할 수 O
: <int>를 통해 정수형으로 바꿔줌 ( 기존 url은 숫자도 str 타입으로 인식)
( 2 ) <views.py> detial 함수 정의
from django.shortcuts import render, get_object_or_404
def detail (request, blog_id):
blog_detail = get_object_or_404(Blog, pk = blog_id)
return render(request, 'detail.html', {'blog': blog_detail})
▶ get_object_or_404 : 첫번째 인자) 어떤 클래스에서 객체를 가져올지
: 두번째 인자) 앞의 클래스의 몇번째 객체인지
▶ pk( primary key) : 각 객체를 구분해주는 역할 ( 몇번째 객체인지 )