我正在开发 Django 应用程序。我的模型之一“用户”包含一个“性别”字段,定义如下:
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, null=True)
我正在使用 ModelForm 生成“新用户”HTML 表单。我的 Google-fu 似乎让我失望了——我怎样才能让这个 HTML 表单在下拉框中默认选择“男性”项目? (即,此项目的 selected="selected"
。)
最佳答案
如果您需要一个选择了默认值的空白表单,则使用您的字段名称作为键将“初始”字典传递给模型表单的构造函数:
form = MyModelForm (initial={'gender':'M'})
-或-
您可以使用 Forms API 的声明性特性覆盖 ModelForm 的某些属性。但是,这对于这个用例来说可能有点麻烦,我提到它只是为了向您展示您可以做到。您将来可能会发现它的其他用途。
class MyModelForm (forms.ModelForm):
gender = forms.ChoiceField (choices=..., initial='M', ...)
class Meta:
model=MyModel
-或-
如果您想要一个绑定(bind)到模型特定实例的 ModelForm,您可以传递模型的“实例”,这会导致 Django 从该模型中提取选定的值。
form = MyModelForm (instance=someinst)
关于python - 如何使 Django ModelForm 菜单项默认选中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/624265/