Python 如何在Django模板的下拉列表中显示值?

Python 如何在Django模板的下拉列表中显示值?,python,django,django-models,django-views,django-templates,Python,Django,Django Models,Django Views,Django Templates,我试图在数据库的下拉列表中显示值,我通过id获取值,但它只显示保存在数据库中的一个值。但我想要所有的下拉值。 请让我知道如何在下拉列表中显示所有值 这是我的models.py文件,其中写入了下拉代码 TYPES = [ ('A', 'Active'), ('D', 'Not Active'), ] 这些值通过选项保存在另一种模式中,A和D存储在我的数据库中。 这是我的views.py文件 def getdata(request, id): display=Mymodel.objec

我试图在数据库的下拉列表中显示值,我通过
id
获取值,但它只显示保存在数据库中的一个值。但我想要所有的下拉值。 请让我知道如何在下拉列表中显示所有值

这是我的
models.py
文件,其中写入了下拉代码

TYPES = [
 ('A', 'Active'),
 ('D', 'Not Active'),
]
这些值通过选项保存在另一种模式中,
A
D
存储在我的数据库中。 这是我的
views.py
文件

def getdata(request, id):
    display=Mymodel.objects.filter(pk=id).first()
    context={'display':display}
    return render(request, 'page.html', context)
这是我的
page.html
文件,我在下拉列表中显示数据

<select name='types'>
   <option value="{{display.types}}">{{display.get_types_display}} 
  </option>
</select>

{{display.get_types_display}

但这只显示在下拉列表
Active
值中,但我想要两个值,我想要使用此表单编辑数据。如果
A
保存在我的数据库中,则默认情况下应选择
Active
,如果
D
保存在我的数据库中,则默认情况下应选择
Not Active
,其余值应显示在下拉列表中。

如果您希望拥有表单并能够添加数据,然后需要在forms.py中创建模型表单。不幸的是,您还没有编写模型代码,只编写了希望使用的选项(添加Mymodel定义-它应该命名为Mymodel以符合驼峰符号,但这不是一个错误)

在Mymodel中,您应该有如下字段:

some_type = models.CharField(max_length=1, choices=TYPES)
class MymodelForm(ModelForm):

class Meta:
    model = Mymodel
    fields = '__all__'

some_type = ModelChoiceField(
    widget=forms.RadioSelect,
)
在表单中使用模型时,应该使用名为ModelForm的表单的特殊版本。定义如下:

some_type = models.CharField(max_length=1, choices=TYPES)
class MymodelForm(ModelForm):

class Meta:
    model = Mymodel
    fields = '__all__'

some_type = ModelChoiceField(
    widget=forms.RadioSelect,
)

您还应该更新views.py,但在Django中通常是这样做的。

检查类似问题: 并参考Val F的答案

或者看看

将类型转换为元组

TYPES = (
 ('A', 'Active'),
 ('D', 'Not Active'),
)