首页 > 解决方案 > Django 如何从数据库中获取 id 并在 html 中显示

问题描述

这是我的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>

它的样子

在此处输入图像描述

标签: django

解决方案


您需要更改附加到该列表的方式:

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>

推荐阅读