首页 > 解决方案 > 未填充 Django 下拉列表

问题描述

我希望我的下拉列表中填充来自我的 Django 项目中我的一个数据库表的值,但它仍然是空白的,我不知道为什么。

这是我的 home.html 页面的 html 代码:

<select name="regions" id="regions">
    {% for item in regions_list %}
    <option val="{{ item.name_reg }}"> {{ item.name_reg }} </option>    
    {% endfor %}
</select>

模型.py:

class data_reg(models.Model):
    id = models.AutoField(primary_key=True)
    name_reg = models.TextField(db_column='NAME_REG', blank=True, null=True) 

    class Meta:
        managed = True
        db_table = 'reg'

视图.py:

def MyView(request):
    regions_list = RegionChoiceField()

    query_results_dict = {
        'regions_list': regions_list,
    }

    return render(request,'home.html', query_results_dict)

表格.py:

class RegionChoiceField(forms.Form):

    regions = forms.ModelChoiceField(
        queryset=data_immo.objects.values_list("name_reg", flat=True).distinct(),
        empty_label=None
    )

标签: pythondjangodropdown

解决方案


将 ModelChoiceField 传递给上下文时,我认为模板应该不同。

{% for item in regions_list %}
<option val="{{ item.name_reg }}"> {{ item.name_reg }} </option>    
{% endfor %}

改成

{% for item in regions_list %}
{{ item }}
{% endfor %}

甚至更简单,只需将您的表单放入模板中

{{regions_list}}

希望这行得通,

问候肯


推荐阅读