首页 > 解决方案 > 根据条件自定义Django wrt中的下拉字段

问题描述

我有一个场景,我有 2 个下拉菜单,第二个下拉菜单的值基于第一个下拉菜单的值。例如:-根据我的实现现在写它似乎是2个单独的下拉菜单
drop-down1_value 1
drop-down1_value 2
drop-down1_value 3

drop-down2_value 1
drop-down2_value 2
drop-down2_value 3
drop-down2_value 4

我想要的是值应该显示为

下拉 1_value 1 下拉 2_value 1
                         dropdown2_value 2

下拉 1_value 2 下拉 2_value 3
                               dropdown2_value 4

所以,基本上下拉 2 的值取决于下拉 1 的值。在内部,表格是连接的,但我无法根据需要显示它。根据我的研究,它必须使用 Django 表单来完成,但我无法做到。任何帮助都会非常有帮助。

class ClientCheckForm(forms.ModelForm):

Check_Names = forms.ModelMultipleChoiceField(widget=CheckboxSelectMultiple,queryset=None)
Client_Name = forms.ModelChoiceField( queryset=Clients.objects.all(), initial=0)
Sub_Check_Names = forms.ModelMultipleChoiceField(widget=CheckboxSelectMultiple,queryset=None)

class Meta:
    model = Client_Check
    fields =  "__all__"
    widgets = {
        'Client_Name': forms.TextInput(attrs={'class': 'form-control'}),
        'Check_Names': forms.TextInput(attrs={'class': 'form-control'}),
        'Sub_Check_Names':forms.TextInput(attrs={'class': 'form-control'}),
       }

def __init__(self, *args, **kwargs):
    super(ClientCheckForm, self).__init__(*args, **kwargs)
    self.fields['Check_Names'].queryset = Check_Types.objects.all()
    self.fields['Client_Name'].empty_label = "Select"
    self.fields['Sub_Check_Names'].queryset = SubChecks.objects.all()

标签: pythondjangodjango-forms

解决方案


您必须将点击事件添加到下拉 1,然后您的表单再次渲染。或者使用 ajax 你应该填写下拉列表2。


推荐阅读