How do you make django form validation dynamic?

前端 未结 4 1902
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-13 21:53

I have a form that needs to have either a valid url or a valid file for uploading:

class ResourceUpload(ModelForm):
   ...        
   uploadedfile = forms.Fi         


        
4条回答
  •  渐次进展
    2021-01-13 22:42

    my solution
    pros: it keeps the asterisk for the really required field and default error messages

    class Form(forms.ModelForm):
        field1 = SelectField
        field2 = ...
        field3 = ...
    
        def __init__(self, *args, **kwargs):
            super(Form, self).__init__(*args, **kwargs)
            if kwargs['data']:
                if kwargs['data'].get('field1') == '1':
                    self.fields['field2'].required = True
                    self.fields['field3'].required = False
                elif kwargs['data'].get('field1') == '2':
                    self.fields['field2'].required = False
                    self.fields['field3'].required = True
    

提交回复
热议问题