如何在Django表单中创建“孩子”问题?

问题描述:

我想知道如何使用Django表单创建“孩子”问题。那就是,根据上一个问题提供的答案,只能看到问题。如何在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?') 
+1

Django不开箱即用。有一个第三方软件包'django-smart-selecting',我发现有些人至少在某些方面使用了它 - 它肯定会尝试处理一个字段的选项取决于另一个字段的值的情况,但是我不确定它处理的情况下,除了某些值之外,您甚至不想显示选择输入。我自己并没有使用它,我只是看到它提到了很多。 – 2014-09-18 19:03:42

你或许应该只使用JavaScript来显示/隐藏 “孩子” 选择,然后当你处理你的表单,如果国家/地区值为美国,则只保存一个州的值。