如何为Django表单上的国家/地区设置默认文本下拉

时间:2017-08-22 07:56:36

标签: django forms drop-down-menu

我一直试图让这个工作失败。我用过 - help_text,blank_label,default等都导致了错误。我有一个表格,你可以选择你的国籍。该模型工作正常,也在管理部分。这些国家正在使用Django-countries软件包生成。但是当我渲染表格时,默认是阿富汗。现在,我希望默认为“选择国家/地区”,然后人们从下拉列表中进行选择。下拉本身工作得很漂亮。我该怎么做呢? (PS-我在这里检查了各种问题,他们不回答如下问题: Django: Country drop down list?set up form option as default in a drop downdjango countries dropdown default等)

截至2017年8月31日,我甚至添加了Meta,它改变了占位符值。虽然这改变了其他领域的价值,但它并没有影响到国家领域。请参阅下面的更新代码。

来自form.py代码段

nationality = LazyTypedChoiceField(choices=countries, label='Nationality', required=False)
class Meta:
        model = ProfileTeacher
        fields = ('description', 'document' 'name','last_name','phone_number', 'date_of_birth', 'bank_account', 'id_number', 'postal_code', 'adress', 'profile_image', 'nationality' )

    def __init__(self, *args, **kwargs):
        super(RegisterFormTeacher, self).__init__(*args, **kwargs)
        self.fields['nationality'].widget.attrs['placeholder'] = 'Select a Country'

来自model.py

nationality = CountryField(blank_label='(select country)', null=True, blank = True)

1 个答案:

答案 0 :(得分:1)

结果非常简单。在form.py中,我需要将其更改为:

nationality = LazyTypedChoiceField(choices=countries, label='Nationality', required=False)

nationality = CountryField(blank_label='(Select country)',).formfield()

在.formfield()中,您可以设置其他属性,例如'required'等。