[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 %}
필자의 작업 화면.

위의 사진을 보면 다운로드 버튼이 제대로 출력되는 것을 볼 수 있습니다. 당연히, 파일을 포스트에 업로드하지 않으면 버튼은 생기지 않습니다.

Leave A Comment

Avada Programmer

Hello! We are a group of skilled developers and programmers.

Hello! We are a group of skilled developers and programmers.

We have experience in working with different platforms, systems, and devices to create products that are compatible and accessible.