【问题标题】:How to create 'child' questions in Django forms?如何在 Django 表单中创建“子”问题?
【发布时间】:2014-09-18 17:31:33
【问题描述】:

我想知道如何使用 Django 表单创建“子”问题。也就是说,仅根据前面问题中提供的答案可见的问题。

我很确定我没有对“儿童”问题使用正确的术语,但我相信有人会明白我的意思

在下面的示例中,当用户选择“美国”时,选择他们来自哪个州的选项应该变得可见。这将是我网站表单的标准。

是否有可用的标准功能来执行此操作?

国家/地区列表

   COUNTRY = (   
        ("", "----------"), 
        (AFGHANISTAN, 'Afghanistan'),
        (ALBANIA, 'Albania'),
        ....
        (UNITED STATES OF AMERICA, 'United States of America'),
        ....
        (ZAMBIA, 'Zambia'),
        (ZIMBABWE, 'Zimbabwe'),

        COUNTRY = forms.ChoiceField(widget=forms.Select(), choices=COUNTRY, initial="", label='What Country are you from?')

州列表

STATE = (
        ("", "----------"), 
        (ALABAMA, 'Alabama'),
        (ALASKA, 'Alaska'),
        (ARIZONA, 'Arizona'),
        ....
        ....
        (WYOMING, 'Wyoming'),
        (DISTRICT_OF_COLUMBIA, 'District of Columbia'),
        (PUERTO_RICO, 'Puerto Rico'),
        (GUAM, 'Guam'),
        (AMERICAN_SAMOA, 'American Samoa'),
        (US_VIRGIN_ISLANDS, 'US Virgin Islands'),
        (NORTHERN_MARIANO_ISLANDS, 'Northern Mariana Islands'),
            )

    state = forms.ChoiceField(widget=forms.Select(), choices=STATE, initial="", label='What State are you from?')

【问题讨论】:

  • Django 没有开箱即用。有一个第三方包,django-smart-selects,我见过一些人至少在其中的某些部分使用它——它肯定会尝试处理一个字段的选项取决于另一个字段的值的情况,但我不是确保它可以处理除了某些值之外您甚至不想显示选择输入的情况。我自己没有使用过它,我只是看到它提到了很多。

标签: django django-forms


【解决方案1】:

您可能应该只使用 javascript 来显示/隐藏“子”选择器,然后在处理表单时,如果国家/地区值是 USA,则仅保存州值。

【讨论】:

    猜你喜欢
    • 2018-10-07
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    相关资源
    最近更新 更多