Begrenzen des ManyToManyField-Abfrage-Sets eines Django-Formulars in einem formtools-Assistenten basierend auf der Auswahl im vorherigen Formular

8

Ich verwende ein SessionWizardView von django-formtools , um einen Zwei-Formular-Assistenten zu erstellen. Die Herausforderung, der ich gegenüberstehe, ist, dass ich die Eingabe von der ersten Form referenzieren muss, um die verfügbaren Abfragesätze auf der zweiten Form zu begrenzen.

Um es interessanter zu machen, verwende ich knusprige Formulare für das Layout, und das Abfrageset muss durch eine Methode für ein verknüpftes Element eingeschränkt werden.

Hier ist der (viel vereinfachte) Kern dessen, wo ich bin:

Modelle

%Vor%

Ansichten

%Vor%

Formulare

%Vor%

Gestützt auf die Google-Suche und einige SO-Fragen (von denen keine = direkt = verwandt waren), gehe ich davon aus, dass ich die .queryset -Eigenschaft im Feld colors einstellen muss, aber ich bin nicht genau sicher, wo das zu tun ist. Zwei Gedanken:

  • Ich denke, es geht irgendwie in .get_form_initial() , aber ich weiß nicht, wie ich das am besten erreichen soll.
  • Alternativ könnte der entsprechende Code irgendwie in die productFormWizard.get_context_data() -Methode gehen.

Innerhalb von .get_form_initial () kann ich Folgendes tun:

%Vor%

Dies wählt jedoch nur die verfügbaren verwandten Elemente ... es beschränkt die Liste nicht.

Zusätzliche Informationen

%Vor%     
Andrew Marconi 12.03.2017, 19:05
quelle

1 Antwort

3

Die Lösung besteht darin, die Methode .get_form() für die Ansicht zu überschreiben:

%Vor%     
Andrew Marconi 18.03.2017, 03:39
quelle