강사님~! TemplateSyntaxError 질문 드립니다!
강사님!
TemplateSyntaxError at /instagram/new/
Invalid block tag on line 34: 'endblock',
expected 'elif', 'else' or 'endif'.
Did you forget to register or load this tag?이런 에러가 떴습니다.
메세지를 보아하니 유효하지 않은 태그가 34번에 있는데 그 이름이 endblock이고
심플하게는 태그 잘썼냐? 이런걸로 해석이 되는데요.
{% extends 'gram/layout.html' %}
{% load bootstrap5 %}
{% block content %}
<!-- 파일도 전송할 경우에는 반드시 enctype="multipart/form-data"를 해줘야 한다. -->
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
{% bootstrap_form form %}%
<!-- form을 써줄때는 반드시 table로 감싸줘야 생김새가 깨져보이지 않고 정돈되어 나온다. -->
<!-- 두번째 방법으로는 form.as_table을 해주면 된다. -->
{% comment %} <table>
{{ form }}
</table> {% endcomment %}
{% buttons %}
{% comment %} <input type="submit" value="저장"> {% endcomment %}
<button class="btn btn-success">
저장
</button>
{% endbuttons %}
<!-- 여기를 통해서 전달받게 되는 데이터는 request.POST의 형식으로 전달이 된다. 따라서 이것과 관련된
로직을 구현해야하며, 추가로 파일저장이 있을 경우에는 request.FILES도 추가적으로 정의해주어야 한다. -->
</form>
<hr>
<!-- NoReverseMatch에러의 요소였어서, 각 인자에 post를 추가해 주었고 이건 주석처리 해준다. -->
<!-- {% if form.instance %} -->
{% if post %}
<a href="{{ post.get_absolute_url }}" class="btn btn-success">
내용으로
</a>
{% endif %}
<a href="{% url 'gram:post_list' %}" class="btn btn-success">목록</a>
{% endblock content %}에러가 발생한 페이지를 보면 짝을 이루는 태그가
block -> block, endblock 각 한개씩 있음
buttons -> buttons, endbuttons 각 한개씩 있음
if -> if, endif 각 한개씩 있음.
뭐가 문제인걸까요? ㅠㅜ
답변 1
1
안녕하세요.
if 블럭이 2개인데, endif 가 1개여서 발생하는 이슈입니다.
아래의 코드에서, if 블럭을 주석처리해서 if 블럭으로 동작하지 않는다고 생각하셨는 듯 한데요. 그렇지 않습니다.
<!-- {% if form.instance %} -->
<!-- --> 는 HTML에서의 주석 문법입니다. 장고 템플릿의 주석 문법이 아닙니다. 그렇기에 <!-- --> 는 장고 템플릿 입장에서는 단순 문자열일 뿐입니다. 그러니 위 if 블럭이 동작을 한 것입니다.
위 if 문이 장고 템플릿 엔진에서 렌더링 시에 무시토록 할려면, 장고 템플릿 주석 문법인 {# #} 를 쓰셔야 합니다. 그럼 {# {% if form.instance %} #} 가 됩니다.
{# #} 문법은 1줄 주석 문법이구요.
여러줄 주석은 comment 템플릿태그를 쓰셔야 합니다.
{% comment %}
이 사이에 쓰신 문자열은 장고 템플릿 엔진에 의해서 무시됩니다.
{% endcomment %}
이번 기회에 장고 템플릿 엔진에서의 주석과
웹프론트엔드 HTML, JS, CSS 에서의 주석의 차이에 대해서 곰곰히 생각해보시고 잘 정리해보세요.
또 질문 남겨주시구요.
화이팅입니다. ;-)
0
와..... 이걸 어떻게 알았을까 싶네요 진짜...
너무너무 감사드립니다!!!
아직은 아는듯 모르는게 더 많아서 활용을 못하고 있는데, 그래도 강사님 덕분에 하루에 몇가지씩 알아가고 있습니다. 너무 감사합니다!!
안녕하세요.
0
51
1
[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?
0
275
1
useEffect 훅에서 else 유무에 따른 결과
0
211
1
useAxios 훅의 dependency array 설정
0
245
1
useEffect에서 변수 업데이트 관련 질문
0
382
1
rest_framework.generics.CreateAPIView의 model 속성 유무
0
268
1
bootstrap4
0
471
4
리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요
1
365
1
admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법
0
574
3
useState는 필수일까요?
0
263
1
python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.
0
600
4
Django allauth를 사용한 소셜 로그인 시 에러
0
655
1
프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러
0
556
2
useLocalStorage() 함수 사용여부
0
229
1
django에 LOGIN_URL = '/accounts/login/'의 의미?
0
449
1
리듀서의 의미 재확인
0
430
1
simple-jwt Refresh Token 사용 노하우
0
899
2
docker compose 를 통한 배포 관련 오류 문의
0
673
1
파이썬 속도 장고 관련 궁금한게 있습니다.
0
365
1
is_like_user
0
233
1
related_name 오류
0
275
1
re_path 오류
0
259
1
re_path url
0
251
1
No post matches the given query
0
661
2





