从枚举动态更新Django表单选择字段

2024-04-24 00:13:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试动态更新Django中Choice字段的选项。在

我有称为域的枚举和每个域的相关子域作为哈希。在

 DOMAINS = (
    (CHE_DOMAIN, 'Chemistry'),
    (CS_DOMAIN, 'Computer Science'),
 )
 SUBDOMAINS = {
    CHE_DOMAIN: (
        ('CHE-CCHE', 'Computational Chemistry'),
        (OTHER_DOMAINS, 'Others'),
    ),
    CS_DOMAIN: (
        ('CS-ALG', 'Algorithms'),
        ('CS-AI', 'Artifical Intelligence'),
        ('CS-CRYP', 'Cryptography'),
    ),
   }

因此,如果用户选择CS_DOMAIN,我的子域必须填充CS下的子域。在

我有这样的模型

^{pr2}$

我不知道如何在表单中动态填充此内容。但是当我尝试硬编码进行实验时。。在

class ResearchAreasForm(forms.ModelForm):
    subdomain1 = forms.ChoiceField(choices=MyEnums.SUBDOMAINS['CHE'])
    subdomain2 = forms.ChoiceField(choices=MyEnums.SUBDOMAINS['CHE'])

它给出了这个错误。在

Exception Type: ValueError

Exception Value:
need more than 1 value to unpack

关于如何动态更新表单选择值以及硬代码出现错误的原因有什么建议吗?谢谢。在


Tags: 子域表单domain错误exception动态formsche