[REAL Python – Django] – “Django – 템플릿에서 if 사용하기”
[REAL Python – Django] – “Django – 템플릿에서 if 사용하기”
2월 19, 2022
문제점:
- 이전까지 구현했던 사진 올리기 기능에서, 모든 포스트에 사진이 없으면 오류가 발생했습니다. 사진이 없는 경우에도 포스트를 정상적으로 출력할 수 있도록 해야 합니다.
장고 템플릿에서 if
사용법
{% if 조건문1 %}
{% elif 조건문2 %}
{% elif 조건문3 %}
{% elif 조건문N %}
...
{% endif %}
위와 같이 사용하면 됩니다.
실제로 적용하기 1
{% if p.head_image %}
<img class="card-img-top" src="{{ p.head_image.url }}"
{% endif %}
head_image
가 있으면 그것을 표시하고, 그렇지 않으면 img
태그는 아예 생기지 않습니다.
실제로 적용하기 2
포스트의 file_upload
필드에 올려진 파일이 있다면 그것을 다운로드하는 버튼이 생기게 하도록 if
를 사용해서 처리할 수 있습니다.
{% if post.file_upload %}
<a href="{{ post.file_upload.url }}" class="btn btn-danger" role="button">
Download:
{% if post.get_file_ext == 'csv' %}
<i class="fas fa-file-csv"></i>
{% elif post.get_file_ext == 'xlsx' or post.get_file_ext == 'xls' %}
<i class="fas fa-file-excel"></i>
{% elif post.get_file_ext == 'docs' or post.get_file_ext == 'doc' %}
<i class="fas fa-file-word"></i>
{% else %}
<i class="far fa-file"></i>
{% endif %}
{{ post.get_file_name }}
</a>
{% endif %}
위의 사진을 보면 다운로드 버튼이 제대로 출력되는 것을 볼 수 있습니다. 당연히, 파일을 포스트에 업로드하지 않으면 버튼은 생기지 않습니다.