Валидация полей модели администратора 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.