我尝试显示(以选择方式)表中特定列的不同值的列表。该表的名称是: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。
感谢阅读!
希望您能解决它=)
亲切
当前您没有将任何值传递给.distinct()
。您需要指定不同的值,如下所示:
risks = RankingHasEntreprise.objects.distinct('risk').values_list('risk', flat=True)