Документы django охватывают очистку и проверку ПОЛЕЙ, которые зависят друг от друга , но я не могу найти ничего, что охватывает формы, которые зависят друг от друга.
У меня есть одна HTML-форма, которая содержит как стандартную форму django, так и набор форм django. Надлежащая проверка каждой формы в наборе форм полностью условна на основе значения из основной формы (например, установите флажок в главной форме и определенное поле каждой формы в наборе форм вдруг становится обязательным).
Моя интуиция заключается в том, чтобы "просто" передать всю основную форму в вызов проверки формы, например:
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()
. Так что все становится довольно грязно и быстро.
Есть ли лучший способ сделать это?