Rex*_*exE 10 python django django-forms
我正在研究Django应用程序.我的一个模型"用户"包括"性别"字段,定义如下:
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, null=True)
Run Code Online (Sandbox Code Playgroud)
我正在使用ModelForm生成"新用户"HTML表单.我的Google-fu似乎让我失望了 - 如何让这个HTML表单在下拉框中默认选中"Male"项?(即selected="selected"这个项目.)
Joe*_*way 16
如果您需要一个选定默认值的空白表单,则使用您的字段名称作为键,将"初始"字典传递给模型表单的构造函数:
form = MyModelForm (initial={'gender':'M'})
Run Code Online (Sandbox Code Playgroud)
-要么-
您可以使用Forms API的声明性质覆盖ModelForm的某些属性.但是,对于这个用例来说这可能有点麻烦,我提到它只是为了告诉你你可以做到这一点.您可能会在将来找到其他用途.
class MyModelForm (forms.ModelForm):
gender = forms.ChoiceField (choices=..., initial='M', ...)
class Meta:
model=MyModel
Run Code Online (Sandbox Code Playgroud)
-要么-
如果您想要一个绑定到模型的特定实例的ModelForm,您可以传递模型的"实例",这会导致Django从该模型中提取所选值.
form = MyModelForm (instance=someinst)
Run Code Online (Sandbox Code Playgroud)
肯定default会做的伎俩?
例如
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, default='M', null=True)Run Code Online (Sandbox Code Playgroud)