如何在 ModelForm 中使用 forms.ChoiceField()?
Posted
技术标签:
【中文标题】如何在 ModelForm 中使用 forms.ChoiceField()?【英文标题】:How to use forms.ChoiceField() inside ModelForm? 【发布时间】:2017-04-14 15:05:24 【问题描述】:我想使用 ModelForm 在我的表单中显示一个下拉列表。我的代码添加在下面-
from django import forms
from django.forms import ModelForm
class CreateUserForm(ModelForm):
class Meta:
model = User
fields = ['name', 'age']
AGE_CHOICES = (('10', '15', '20', '25', '26', '27', '28'))
age = forms.ChoiceField(
widget=forms.Select(choices=AGE_CHOICES)
)
它没有在表单中显示下拉列表。另外,我希望将“选择”选为默认值,并带有空值。我怎样才能做到这一点?
提前致谢!
【问题讨论】:
字段不应该是元类的一部分,只需将其缩进到类级别 grade是User模型的一个字段吗,还是你把grade写错了age。? 对不起,弄错了!已经更新了。谢谢 【参考方案1】:修改了你的代码。试试这个:
from django import forms
from django.forms import ModelForm
class CreateUserForm(ModelForm):
class Meta:
model = User
fields = ('name', 'age')
AGE_CHOICES = (
('', 'Select an age'),
('10', '10'), #First one is the value of select option and second is the displayed value in option
('15', '15'),
('20', '20'),
('25', '25'),
('26', '26'),
('27', '27'),
('28', '28'),
)
widgets =
'age': forms.Select(choices=AGE_CHOICES,attrs='class': 'form-control'),
【讨论】:
以上是关于如何在 ModelForm 中使用 forms.ChoiceField()?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ModelForm 中使用 admin.TabularInline
如何使用 Ajax 在 Django 中更新 modelForm
使用 Django,如何在模板中动态设置 ModelForm 字段值?