Документите на django обхващат почистване и валидиране на ПОЛЕТА, които зависят едно от друго, но не мога да намеря нищо, което да обхваща форми, които зависят една от друга.
Имам един HTML формуляр, който съдържа както стандартен django формуляр, така и django formset. Правилното валидиране на всеки формуляр в набора от формуляри е изцяло условно въз основа на стойност от главния формуляр (напр. поставете отметка в квадратче в основния формуляр и конкретно поле във всеки формуляр в набора от формуляри< /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()
. Така че става доста разхвърляно доста бързо.
Има ли по-добър начин да направите това?