Django 配合Bootstrap5用if對forloop中的form表單實現單獨樣式

背景:我們一般在html中是以for循環(huán)的形式輸出form表單的,比如像下面的html代碼,假使form中定義了三個表單。前端用for循環(huán)的形式直接顯示這三個form。這樣就有個問題,每個樣式都一模一樣,那么如何修改其中某個表單的樣式呢?

<form id="formAdd">
    {% for field in form %}
        <div class="mb-3 mt-6">
            <label class="form-label">{{ field.label }}</label>
            {{ field }}
        </div>
    {% endfor %}

三個表單的樣式一模一樣,如下圖:

效果就是這樣,每個字段都是同樣的樣式,那么比如我只想對其中一個form做修改,就可以用if單獨控制。

{% if field.label == '測序公司' %}
<div class="col-1">
    <label class="form-label">{{ field.label }}</label>
    {{ field }}
</div>
{% endif %}

比如這里原本是想讓前兩個form占一行,第三個form獨占一行。但是沒有實現,就先讓三個form占一行:

代碼如下:

<div class="row">
    <div class="col-12 d-flex">
        {% for field in form %}
        {% if field.label == '測序公司' or field.label == '區(qū)域' %}
        <div class="col-1 mb-3 mt-6 me-3">
            <label class="form-label d-flex">{{ field.label }}</label>
            {{ field }}
        </div>
        {% else %}
        <div class="col mb-3 mt-6">
            <label class="form-label">{{ field.label }}</label>
            {{ field }}
        </div>
        {% endif %}
        {% endfor %}
    </div>
    <div class="col col-xs-7 mb-3 mt-6">
        <button id="btnAdd" type="button" class="btn btn-primary btn-lg">添加新數據</button>
    </div>
</div>

我的做法是先設置整個div為class=col-12 d-flex,占全部12個col并且浮動起來。然后循環(huán)輸出表單時,判斷如果是前兩個表單,就設置col-1的寬度,如果是第三個就設置為全長col-12.但是這里就出現bug了,在(else)中 col設置col-12,就會超出整個col。如下圖。不知道咋解決,只好設置為col自動補全col的長度。


誰有更好的方法可以留言!

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容