Валидация полей модели администратора Django

Я разрабатываю веб-приложение, используя шаблон администратора django. В этом приложении мне требуется валидация поля модели на основе ввода другого поля модели. Приведем пример: если пользователь указал "yes" в качестве входного значения в поле модели file_required, поле модели Browsefile должно рассматриваться как обязательное поле. Если в поле модели file_required пользователь указал "no" в качестве входного значения, поле модели Browsefile следует считать необязательным. Пожалуйста, посоветуйте

Вы можете определить поле Browsefile как необязательное в вашей модели, установив blank=True, а затем сделать форму валидации для проверки поля file_required, и если пользователь сказал "да", не введя ничего в Browsefile, то вы вызовете ValidationError "Это поле обязательно".

Вы можете проверить введенные пользователем значения, проверив очищенные_данные вашей формы, а затем сделать то, что вы хотите, если заданное вами условие не является обязательным :

class YourModelForm(forms.ModelForm):
    def clean(self):
        file_required = self.cleaned_date['file_required']
        if file_required == "yes" and not self.cleaned_data['Browsefile']:
            raise forms.ValidationError({'Browsefile': "This field is mandatory"})

И не забудьте поставить form = YourModelForm в свой класс admin.py.

Вернуться на верх