본문으로 바로가기

구문 분석 오류(could not parse ...)

category 장고/MTV 2019. 2. 20. 16:31

서론


# Could not parse the remainder: ': "m/d/Y"" from 'transaction.created_at|date: "m/d/Y"




Django 에서 template 을 만들면서 오류가 발생하는 일들이 많았다.

띄어쓰기 하나로도 오류가 발견되는데 익숙해지기 전까지는 상당히 많은 시간이 소요됐다.

(Django 에서 파이프라인을 검색하니 라이브러리가 나와서 당황했는데, 이는 프론트엔드쪽에서 사용하기 위한 라이브러리 정도로 생각해두자.)


장고의 내장 템플릿 태그나 필터를 사용할 때 파이프라인을 사용하게 되는데, 한가지 통일성을 발견할 수 있었다.


바로 변수(또는 속성)과 파이프라인 그리고 내장 태그까지 공백이 없이 입력을 해야 한다는 것이다.


공식 문서 참조


- 문서에서 무조건 붙여야 한다는 권장사항은 따로 명시하지 않았지만 '일반적' 으로 공백없이 작성하는 형태를 가지고 있다.

#1 예시
<p>Rendered text with {{ pub_date|date:"c" }}</p>

#2 예시
{% for date in days %}
    {% ifchanged %}<h3>{{ date|date:"F" }}</h3>{% endifchanged %}
    <a href="{{ date|date:"M/d"|lower }}/">{{ date|date:"j" }}</a>
{% endfor %}



- 문제의 코드

<td valign="top" colspan="2" style="width: 50%;">
    <b>Order: </b>#{{ transaction.id }}
    <br>
    <b>Date: </b>{{ transaction.created_at|date: "m/d/Y" }}
</td>


- 오류로 인한 안내 메시지







- 수정 코드

{{ transaction.created_at|date:"m/d/y" }} 이 부분에서 띄어쓰기 하나로 오류가 발생

<td valign="top" colspan="2" style="width: 50%;">
    <b>Order: </b>#{{ transaction.id }}
    <br>
    <b>Date: </b>{{ transaction.created_at|date:"m/d/Y" }}
</td>