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를 따로 만들 수 있고 이를 활용하면 훨씬 더 사용폭이 넓어질 것이다.
이번에는 태그를 만들어 보자!