当前位置:  开发笔记 > 编程语言 > 正文

如何在默认情况下选择Django ModelForm菜单项?

如何解决《如何在默认情况下选择DjangoModelForm菜单项?》经验,为你挑选了2个好方法。

我正在研究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"这个项目.)



1> Joe Holloway..:

如果您需要一个选定默认值的空白表单,则使用您的字段名称作为键,将"初始"字典传递给模型表单的构造函数:

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)



2> John Montgom..:

肯定default会做的伎俩?

例如

gender = models.CharField(max_length=1, choices=GENDER_CHOICES, default='M', null=True)

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有