Создание динамических полей формы в Django ModelForm

Я хочу найти экземпляр, проверить значение в определенном поле и затем вернуть список для этого поля Meta, но не похоже, что __init__ может что-то вернуть. Как я могу сделать динамическую форму, которая на основе значения в поле показывает только заранее определенные другие поля

Цель: В конечном итоге, если subgrade_02_weight != None, то сделать видимыми subgrade_02_title, subgrade_02_weight, subgrade_02_1_star и т.д. У меня более 100 полей, которые нужно сделать видимыми, и я не хочу делать это халтурным способом в шаблоне.

Кажется, что JS - лучший подход, но у меня нет опыта в JS.

class Inspection_ResultForm(forms.ModelForm): #work on this tomorrow
    def __init__(self, user, *args, **kwargs):
        super( Inspection_ResultForm,self).__init__(*args, **kwargs)
        #if user.groups.filter(name='Operations Manager').exists():
        fields_list = ["subgrade_00_title", "subgrade_00_weight", "subgrade_00_1_star", "subgrade_00_2_star", "subgrade_00_3_star", "subgrade_00_4_star", "subgrade_00_5_star",
                        "subgrade_01_title", "subgrade_01_weight", "subgrade_01_1_star", "subgrade_01_2_star", "subgrade_01_3_star", "subgrade_01_4_star", "subgrade_01_5_star"
                       ]

        if self.instance.inspection_request.sample.order.specification.subgrade_02_weight != None:
            fields_extends = ["subgrade_02_title", "subgrade_02_weight", "subgrade_02_1_start", "subgrade_02_2_star",
            "subgrade_02_3_star", "subgrade_02_4_star", "subgrade_02_5_star"]
            fields_list.extend(fields_extends)
            print(fields_list)


        fields = fields_list
        return fields

    class Meta:
        model = Inspection_Result
        fields = ('subgrade_00_title', 'subgrade_01_title',) #would like this to be equal to field list calculated in __init__
Вернуться на верх