Django 템플릿에서 삼항 연산자

Django 템플릿에서 삼항 연산자는 Python의 삼항 연산자(x if condition else y)와 유사한 방식으로 사용됩니다. 하지만, Django 템플릿 언어는 자체적인 구문을 사용하여 이를 표현합니다. Django 템플릿에서는 주로 {% if %} 태그를 사용하거나, 더 간단한 경우에는 {{ value|default:"default" }} 필터를 사용합니다. 그러나, 더 직접적인 삼항 연산자의 형태를 원한다면, {{ condition|yesno:"value_if_true,value_if_false" }} 필터를 사용할 수 있습니다.

삼항 연산자 예시

조건부 표현식 사용 예:

htmlCopy code{% if condition %}
    {{ value_if_true }}
{% else %}
    {{ value_if_false }}
{% endif %}

이 방식은 Python의 삼항 연산자와 유사한 로직을 구현하지만, 보다 명시적인 조건 분기를 사용합니다.

default 필터 사용 예:

htmlCopy code{{ variable|default:"default_value" }}

이 필터는 variable이 존재하고 거짓(False, None, 빈 문자열 등)이 아니면 variable을 출력하고, 그렇지 않을 경우 "default_value"를 출력합니다. 이는 삼항 연산자의 특정 사용 사례에 해당합니다.

yesno 필터 사용 예:

htmlCopy code{{ condition|yesno:"yes,no" }}

이 필터는 condition이 참(True)인 경우 "yes"를, 거짓(False)인 경우 "no"를 출력합니다. 이는 Python의 삼항 연산자 value_if_true if condition else value_if_false에 직접 대응됩니다.

예를 들어, 사용자가 로그인 상태인지에 따라 다른 메시지를 표시하려면 다음과 같이 할 수 있습니다:

htmlCopy code<p>{{ user.is_authenticated|yesno:"로그아웃,로그인" }} 하세요.</p>

이 구문은 user.is_authenticated가 참일 경우 “로그아웃”을, 거짓일 경우 “로그인”을 출력합니다.

Django 템플릿에서 삼항 연산자를 사용하는 이러한 방법은 템플릿 내에서 간단한 조건 로직을 표현할 때 유용합니다.

답글 남기기