4/14 TIL

나명흠·2023년 4월 14일
0

오늘은 팀 프로젝트 하면서 어려워했던 django에서 템플릿문법을 복습하던 중 한 삽질을 기록하려고 한다.

문제점

{% if menu.price < 15000 %}

이것이 바로 문제의 코드.

이걸 vscode에서 보면 <의 색깔이 붉은색이다.
음.. 이게 왜 문제지? 하고 우선 실행해보니 원하는 값이 나오지 않았다.

서치해보니 잘 나오지 않았고 gpt에게 물어보니

GPT : <을 사용할 수 없는 이유는 HTML 태그의 시작을 나타내는 <와 Jinja2 템플릿 엔진에서 사용하는 <를 구분하기 위함입니다.

음.. 그렇구나.. 그럼 어떻게 해결할까..?

해결 시도

{% if menu.price {% raw %}&lt;{% endraw %}15000 %}

이렇게 하랜다. 그래서 했다.

Could not parse the remainder: '{%' from '{%'

오류 뜸.

GPT : 이 오류는 Jinja2 문법 오류입니다. 보통 이 오류는 문법이 올바르지 않거나 닫는 태그가 누락된 경우에 발생합니다.

..너가 알려준건데.. 오키 다른방법은?

{% if menu.price | float < 15000 %}

ㅇㅋㅇㅋ

Could not parse the remainder: '|' from '|'

?

GPT : 아 ㅎ 이거로 해보셈

{% if menu.price &lt; 15000 %}

Could not parse the remainder: '<' from '<'

..사람한테 가볼게

해결방법

{% if menu.price < 15000 %}

이게 맞았다!
... 이거 처음꺼잖아요?
네 맞습니다. 이 코드는 틀리지 않았습니다.
제가 어리석게도 menu.price 의 벨류 값을 문자열로 해놨기 때문입니다..

느낀점

그럼에도 불구하고 이렇게 TIL을 쓴 이유

  1. 확신을 한 순간, 그 확신부터 의심해야한다
  • views.py의 내용을 한 번이라도 봤다면 알았겠지만 설마 그 간단한 걸 틀렸겠냐는 무의식의 확신이 있어서 템플릿 문법만 집중했던 것 같다
  1. GPT에 의존하면 시야가 좁아진다
  • 음.. 이걸 좀 많이 느끼게 되었는데 어떻게 정리해야 할지 고민된다.
    우선 GPT는 정답을 주지 않음으로써 정답을 준다. 이 녀석은 나보다 코딩을 잘한다. 근데 이 녀석이 알려주는게 틀리다..? 그럼 내가 설명을 못 했거나 이해하지 못하고 물어봤거나 전제가 잘못되었거나 뭐, 그런 이유이다. 적어도 이렇게 간단한 한 줄의 코드에 한해서는!
    직관적으로 생각해도 이건 너무 간단한 코드잖아? 15000보다 적다면이라는 if문인데, 이 부등호는 수많은 사람들이 사용할테고 그럴때마다 이런 오류가 있다면 해결방법이 정석이 되어서 이미 내가 배울 때 그 방법으로 배웠을 거야.
profile
가보자고

0개의 댓글

관련 채용 정보