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