【问题标题】:How to set default text for countries on a Django form drop down如何在 Django 表单下拉列表中为国家/地区设置默认文本
【发布时间】:2018-01-30 09:44:45
【问题描述】:

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

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

来自 form.py sn-p

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'

来自模型.py

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

【问题讨论】:

  • 需要注意的是,'blank_label'在表单中不起作用,会导致错误。
  • 您好!你能解决这个问题吗?我也有类似情况。
  • @Animesh 不,我从来没弄明白。
  • @Animesh 我想通了
  • 太棒了!感谢您回复我。

标签: django forms drop-down-menu


【解决方案1】:

事实证明这很简单。在 form.py 中,我需要将其更改为:

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

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

在 .formfield() 中,您可以设置其他属性,如“必需”等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2019-02-16
    • 2011-08-17
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多