Like A Flowing Cloud

pk, path converter, get_object_or_404, 글자수 제한, 링크달기 본문

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) : 각 객체를 구분해주는 역할 ( 몇번째 객체인지 )

'Django' 카테고리의 다른 글

글쓰기 기능 구현하기 - create  (0) 2021.06.14
템플릿 상속, url 관리하기  (0) 2021.06.14
queryset & method  (0) 2021.06.14
model & admin / migration  (0) 2021.06.14
Django[4] - 템플릿 언어  (0) 2021.04.08