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