초보 개발자

django custom template filter 본문

Python/airbnb 클론

django custom template filter

taehyeki 2022. 3. 26. 18:26

room app안에 templatetags라는 이름의 폴더를 하나 만들자.

 

반드시 이름을 templatetags라고 해주어야 한다!

 

거기에 __init__.py 파일을 만들어서 파이썬이 인식할 수 있도록 해주자.

 

먼저 아래와 같이 {{ }} 안의 | 뒤에 존재하는 것을 filter라고 한다.

앞의 내용을 필터해준 다는 말이다. 여기서 우리는 기존에 내장되어있는 upper를사용해보자

우리는 분명 소문자로 썼는데 화면에서는 아래와 같이 대문자로 나타난 것을 확인할 수 있다.

우리는 이 필터를 커스텀 하려고한다.

먼저 위에서 만든 templatetags폴더안에 sexy_capital.py이라는 파일을 만들고 아래와 같이 만들어주자.

이렇게 한 뒤에 html파일로 가서 위에 {% load sexy_capitals(파일명) %}을 해준 뒤에

아래의 필터를 우리가 만든 sexy_cap으로 적어주면 

화면에는 something이 아닌 필터의 return값 lalalalal가 나오게 되고, 

콘솔을 보게되면 value에 앞에 있던 something을 받아와서 출력하는 것을 확인할 수 있다!!

이제 받아온 value값을 첫 글자만 대문자로 바꿔주기 위해서 아래와 같이 해준 뒤 화면을 보자

아래처럼 잘 바뀐 것을 확인할 수 있다!!

필터는 기능이 제한적이다. 그래서 우리는 tag를 따로 만들 수 있고 이를 활용하면 훨씬 더 사용폭이 넓어질 것이다.

 

이번에는 태그를 만들어 보자!

'Python > airbnb 클론' 카테고리의 다른 글

django session upload room  (0) 2022.03.22
django add photo with createview  (0) 2022.03.22
django photo delete, edit  (0) 2022.03.21
elastic beanstalk  (0) 2022.03.16
django edit-room with UpdateView  (0) 2022.03.16