Django如何在模板中显示与一列不同的值的列表

问题描述 投票:0回答:1

我尝试显示(以选择方式)表中特定列的不同值的列表。该表的名称是:RankHasEntreprise列名是:risk

我认为是这样的:

risks = RankingHasEntreprise.objects.values_list('risk', flat=True).distinct()
risk = "a" # to simplify my code 
print(risks.count()) # this return 5 
return render(request, 'testFiltre.html',{'risk': risk,'risks': risks,})

这是我的模板:

<div class="form-group col-md-2 col-lg-2">
    <label for="Risk">Risk</label>
    <p>{{ risks.count }}</p>
    <select id="Risk" class="form-control" name="Risk">
        {% for risksloop in risks %}
            {% if risk|add:"0"  != risksloop %}
                <option value="{{ risksloop }}">{{ risksloop}}</option>
            {% else %}
                <option selected value="{{ risksloop }}">{{ risksloop }}</option>
            {% endif %}
        {% endfor %}
     </select>
</div>

这是我得到的结果:visual result\ n

您可以看到我的选择为我的表“ RankingHasEntreprise”的每个元组获取了一个值。此选择应仅具有5个不同的值a-b-c-d-e。令人不安的是,当我在视图或模板中对列表进行计数时,会显示5。

感谢阅读!

希望您能解决它=)

亲切

django templates view orm displaylist
1个回答
0
投票

当前您没有将任何值传递给.distinct()。您需要指定不同的值,如下所示:

risks = RankingHasEntreprise.objects.distinct('risk').values_list('risk', flat=True)
© www.soinside.com 2019 - 2024. All rights reserved.