Django html регулирует значение ввода на основе опции select
Сценарий таков: в html select есть два варианта "куб" или "цилиндр". и есть три поля ввода: длина, ширина и высота.
Я хочу, чтобы при выборе пользователем опции "цилиндр" из выпадающего меню, пользователь должен ввести одинаковое значение для полей ввода длины и ширины. Если нет, то при нажатии на кнопку отправки формы, должно появиться предупреждение, чтобы посоветовать пользователю убедиться, что длина и ширина одинаковы.
как проще всего выполнить такую работу?
Вы можете сделать это на javascript, но это не очень надежно, так как кто-то может отключить javascript. Поскольку это важно для вашей формы и включает несколько полей, вы можете расширить метод clean() вашей формы.
class MyForm(forms.Form):
def clean(self):
cleaned_data = super().clean()
length = cleaned_data.get("length")
width= cleaned_data.get("width")
type = cleaned_data.get("type")
if type == "cylinder" and length != width:
raise ValidationError(
"Cylinders must have equal length and width"
)
Вы можете найти раздел django docs о валидации форм здесь