HubDBとHubl関数でデータの入力個数に応じてクラスの出し分けをしたい
HubDBで入力したデータを出力するときに、データの入力個数に応じてクラスの出し分けをしたい、ということがあると思います。
※データ数が1つの場合
<div class="common_wrap A">
<div class="common">hubDBのデータ1を出力</div>
</div>
※データ数が2つの場合
<div class="common_wrap B">
<div class="common">hubDBのデータ1を出力</div>
<div class="common">hubDBのデータ2を出力</div>
</div>
※データ数が3つの場合
<div class="common_wrap C">
<div class="common">hubDBのデータ1を出力</div>
<div class="common">hubDBのデータ2を出力</div>
<div class="common">hubDBのデータ3を出力</div>
</div>
やり方は複数あると思うのですが、配列とその個数を数える手法だと、[データ1,データ2,null]という具合に、空のデータはnullで出てくるので、良い手法が作れませんでした。
なので一番シンプルに、データが1~3つ、存在するかどうかを判断するコードが下記です。
{% if データ1 and not データ2 and not データ3 %}boxes1
{% elif データ1 and データ2 and not データ3 %}boxes2
{% elif データ1 and データ2 and データ3 %}boxes3
{% endif %}
1つの場合→2つの場合→3つの場合
という流れでコードを作るとAが1つある時点で処理が止まってしまい、2つ目の処理まで進みません。
なので、この書き方になりました。