这是我的views.py:
def gradescales(request):
grade = list(gradeScalesSetting.objects.all()) # < DB hit once
gradeScalesSettings = gradeScalesSetting.objects.all()
rounding = []
configuration = []
for i in grade:
if i.Rounding not in rounding:
rounding.append(i.Rounding)
if i.Configuration not in configuration:
configuration.append(i.Configuration)
return render(request, 'Homepage/gradescale.html', {"rounding": rounding, "configuration": configuration,"gradeScalesSetting":gradeScalesSettings})我使用这段代码是因为我不想使用distinct(),但是我在获取它们的id时遇到了麻烦。
这是我的模板
<select name="gradescale" id="gradescale" onchange="summary(this.value)" required="required" >
{% for r in configuration %}
<option value="{{r}}">{{r}}</option>
{% endfor %}
</select>其结果是:

我只希望我的值是我选择的列表的id。
这是我的数据库

更新我尝试过的内容
<select name="gradescale" id="gradescale" onchange="summary(this.value)" required="required" >
{% for r in configuration %}
<option value="{{r}}">{{r.id}}</option>
{% endfor %}
</select>这就是它的样子

另一个更新--这是更新views.py
for i in grade:
if i.Rounding not in rounding:
rounding.append(i)
if i.Configuration not in configuration:
configuration.append(i)更新html
<select name="gradescale" id="gradescale" onchange="summary(this.value)" required="required" >
{% for r in configuration %}
<option value="{{r}}">{{r.id}}</option>
{% endfor %}
</select>它是什么样子的

发布于 2019-11-29 17:45:33
您需要改变添加到该列表中的方式:
for i in grade:
if i.Rounding not in rounding:
rounding.append(i)
if i.Configuration not in configuration:
configuration.append(i)在你的模板里:
<select name="gradescale" id="gradescale" onchange="summary(this.value)" required="required" >
{% for r in configuration %}
<option value="{{r.id}}">{{r}}</option>
{% endfor %}
</select>https://stackoverflow.com/questions/59109133
复制相似问题