Django 模板通过结构迭代



早上好我有以下来自后端的结构:

sentences_info = [
    {
        "keyword": "",
        "sentences": [
            {
                "sentence_id": "",
                "sentence": ""
            },
            ...
        ],
        ...
    },
    ...
]

我需要将此结构以复选框形式放入我的模板中,如下所示:

<form>
    <h3>Keyword: {{ keyword }}</h3>
    <div class="form-check">
        <label class="form-check-label">
            <input type="checkbox" class="form-check-input" id="{{ sentence_id }}" value="{{ sentence_id }}">
            {{ sentence }}
        </label>
        <label class="form-check-label">
            <input type="checkbox" class="form-check-input" id="{{ sentence_id }}" value="{{ sentence_id }}">
            {{ sentence }}
        </label>
        ...
    </div>
    <h3>Keyword: {{ keyword }}</h3>
    <div class="form-check">
        <label class="form-check-label">
            <input type="checkbox" class="form-check-input" id="{{ sentence_id }}" value="{{ sentence_id }}">
            {{ sentence }}
        </label>
        <label class="form-check-label">
            <input type="checkbox" class="form-check-input" id="{{ sentence_id }}" value="{{ sentence_id }}">
            {{ sentence }}
        </label>
        ...
    </div>
    ...
</form>

我尝试了一些迭代,但到目前为止将其放在模板上没有意义。有人可以帮我吗?

你试过这个吗?前提是sentences_info在上下文中。

<form>
{% for info in sentences_info %}
<h3>Keyword: {{ info.keyword }}</h3>
<div class="form-check">
{% for sentence in info.sentences %}
    <label class="form-check-label">
        <input type="checkbox" class="form-check-input" id="{{ sentence.sentence_id }}" value="{{ sentence.sentence_id }}">
        {{ sentence.sentence }}
    </label>
{% endfor %}
</div>
{% endfor %}
</form>

你应该可以做到;

{% for sentence in sentence_info %}
    <h3>Keyword: {{ sentence.keyword }}</h3>
    {% for s in sentence.sentences %}
        <div class="form-check">
            <label class="form-check-label">
                <input type="checkbox" class="form-check-input" id="{{ s.sentence_id }}" value="{{ s.sentence_id }}">
            {{ s.sentence }}
        </label>
    {% endfor %}
{% endfor %}

最新更新