Документы django охватывают очистку и проверку ПОЛЕЙ, которые зависят друг от друга, но я не могу найти ничего, что покрывает формы, которые зависят друг от друга.
У меня есть одна форма HTML, которая содержит как стандартную форму django, так и набор форм django. Надлежащая проверка каждой формы в наборе форм полностью зависит от значения из основной формы (например, установите флажок в основной форме и определенное поле в каждой форме в наборе форм< /em> внезапно становится обязательным).
Моя интуиция состоит в том, чтобы «просто» передать всю основную форму в вызов проверки набора форм, например так:
def my_view(request):
MyFormSet = formset_factory(MyForm, extra=2, can_order=True)
if request.method == 'POST':
form = MainForm(request.POST)
formset = MyFormSet(request.POST)
if form.is_valid() and formset.is_valid(form): # <-- ?!?!
# The formset is now validated based on the form
Однако, чтобы заставить это работать, я считаю, что мне придется переопределить как набор форм is_valid()
, так и базовые методы формы is_valid()
и clean()
. Таким образом, это становится довольно грязным довольно быстро.
Есть лучший способ это сделать?