Django์๋ ๋ค์๊ณผ ๊ฐ์ {% empty %}๋ผ๋ ๋ฉ์ง ํ๊ทธ๊ฐ ์์ต๋๋ค.
{% for item in list %}
<tr><td>{{ item }}</td></tr>
{% empty %}
<tr><td>Nothing to show!</td></tr>
{% endfor %}
์ ์ฝ์
{% if list %}
{% for item in list %}
<tr><td>{{ item }}</td?</tr>
{% endfor %}
{% else %}
<tr><td>Nothing to show!</td></tr>
{% endif %}
jinja๋ก ์ ํํ ์ดํ๋ก ์ด ํ๊ทธ๊ฐ ์ ๋ง ๊ทธ๋ฆฌ์์ก์ต๋๋ค :(
์ด๋ฏธ ์กด์ฌํฉ๋๋ค. for ๋ฃจํ์์ {% else %}
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ถํํ๋ Django๊ฐ ๋น์ด ์๊ธฐ ์ ์ ๋ค๋ฅธ ๊ฒ์ด ์์๊ณ Django ์๋ฏธ ์ฒด๊ณ์ ์ผ์นํ๋๋ก ์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ ๋ค์ ์ด์ํฉ๋๋ค.
์ ๊ฒ ์ด์. ๊ทธ ๋ค์ django ์น์ ์๋์ "๋ค๋ฅธ ํ ํ๋ฆฟ ์์ง์์ ์ ํ"์ ๋ฉ๋ชจ๋ฅผ ํด๋์๊ฒ ์ต๋๊น?
๋๋ ์ด๊ฒ์ ์ค์์นญ ๋ฌธ์ ์์ ๋ณผ ์ ์๋ค. ๊ทธ๊ฒ์ ์ ์ด ๊ตฌ์กฐ์ ์ธ๊ธ๋์ด ์์ต๋๋ค : ๋ฌธ์์ฉ ์ด์ง๋ง ์ค์์นญ ๋ฌธ์์ ์๋ ๊ฒ์ด ๋์์ด ๋ ๊ฒ์ ๋๋ค...
์ฝ๋์ list
๊ฐ ์์ฑ๊ธฐ์ด๊ณ for
๋ฐ if
๋ธ๋ก์ด Python์์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ๊ฒฝ์ฐ if-for
๊ตฌ๋ฌธ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ง ์์ต๋๋ค. ์์ฑ๊ธฐ๋ ํญ์ ์ง์คํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ตฌ์ฑ์ empty
๋ธ๋ก๋ณด๋ค ๋ ๊ด์ฉ์ ์
๋๋ค.
๋ฃจํ๊ฐ ์คํ๋์๋์ง ํ์ธํ๊ธฐ ์ํด ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ ์ ์๋์ง, NameError: name 'item' is not defined
๋ฅผ ํ์ธํ๊ฑฐ๋ Jinja ์์ค์์ list(generator)
์ ๋์ฐ๋ฏธ ๋ณ์๋ฅผ ์ถ๊ฐํ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ ์ผํ ํด๊ฒฐ์ฑ
์ empty
๋ธ๋ก์ ์ถ๊ฐํ๊ฑฐ๋ Python ๊ฐ๋ฐ์์๊ฒ ๋น ์์ฑ๊ธฐ๊ฐ ๊ฑฐ์ง์ด์ด์ผ ํ๋ค๊ณ ํ์ ์ํค๋ ๊ฒ์
๋๋ค( StopIteration
๋ฅผ ์ฒ๋ฆฌํ๊ณ ํ์
ํญ๋ชฉ์ "ํธ์๋ฐฑ"ํ์ฌ ์ถ์
ํ ๊ฒ์ฌ๋ฅผ ํผํ๊ธฐ ์ํด).
Jinja์ else
๋ธ๋ก์ ์ด๋ฏธ Django์ empty
๋ธ๋ก์ฒ๋ผ ์๋ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๋ฏธ ์กด์ฌํฉ๋๋ค. for ๋ฃจํ์์
{% else %}
๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ถํํ๋ Django๊ฐ ๋น์ด ์๊ธฐ ์ ์ ๋ค๋ฅธ ๊ฒ์ด ์์๊ณ Django ์๋ฏธ ์ฒด๊ณ์ ์ผ์นํ๋๋ก ์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ ๋ค์ ์ด์ํฉ๋๋ค.