【问题标题】:Django HTML for loop not showing corresponding valuesDjango HTML for循环不显示相应的值
【发布时间】:2017-12-25 06:43:54
【问题描述】:

我在 HTML 模板中使用了 for 循环,它识别出它们存在的事实,但它并没有像应有的那样在页面中显示它们。

我的观点:

    person = []
    x = people.objects.filter(deal='q')
    for person in x:
         print(person.name)
         if person.paid_status == True:
             person.append(lender)
     return render(request, '.html', {'person': person})

我的模板:

<div>
    {% if person %}
        There are {{ person|length }} persons.
        {% for p in person %}
    <p> {{ p.name }} </p>
        {% endfor %}
    {% else %}
         <p> As of now no persons have appeared. </p>
    {% endif %}
</div>

在控制台中它会正确打印人名,所以我很困惑为什么它在 HTML 中不起作用

我只看到有 2 个人(这是正确的),但它没有列出他们。

提前致谢。

【问题讨论】:

    标签: html django django-views


    【解决方案1】:

    您正在覆盖循环内的变量 person

    将列表 person 更改为 persons,它应该可以正常工作。

    你的看法:

    persons = []
    x = people.objects.filter(deal='q')
    for person in x:
         if person.paid_status == True:
             persons.append(person)
     return render(request, '.html', {'persons': persons})
    

    您的模板:

    <div>
        {% if persons %}
            There are {{ persons|length }} persons.
            {% for p in persons %}
            <p> {{ p.name }} </p>
            {% endfor %}
        {% else %}
             <p> As of now no persons have appeared. </p>
        {% endif %}
    </div>
    

    【讨论】:

    • 这行得通,通过压倒变量你是什么意思?
    • 在第一行执行person = [],然后在循环中执行for person in x:。当您这样做时,用于迭代列表 x 的变量 person 将覆盖您刚刚在上面两行创建的列表 person。如果我的答案是正确的,请标记为正确的,这对我很有帮助。
    猜你喜欢
    • 2017-03-27
    • 2017-09-22
    • 1970-01-01
    • 2022-11-10
    • 2012-04-04
    • 2021-01-30
    • 1970-01-01
    • 2018-07-04
    • 2017-10-27
    相关资源
    最近更新 更多