Frage

Dieser Beitrag bezieht sich darauf:Fügen Sie in Django admin die Zeile zu Dynamik hinzu

Gibt es eine Möglichkeit, Inline -Formsets hinzuzufügen, ohne JavaScript zu verwenden? Offensichtlich würde es eine Seite mit einer Seite geben.

Also, wenn das Formular eine Schaltfläche namens "Add" hatte ...

Ich dachte, ich könnte es so machen:

if request.method=='POST':
  if 'add' in request.POST:
    PrimaryFunctionFormSet = inlineformset_factory(Position,Function,extra=1)
    prims = PrimaryFunctionFormSet(request.POST)

Was ich dachte, würde jedes Mal 1 hinzufügen und dann das Formular mit den Postdaten bevölkern. Es scheint jedoch, dass das Extra = 1 den Postdaten nicht 1 hinzufügt.

War es hilfreich?

Lösung

Ich habs.

Manchmal ist es die einfachste Lösung. Erstellen Sie einfach eine Kopie der Anforderung. Posten Sie Daten und ändern Sie die Gesamtform.

zum Beispiel..

if request.method=='POST':
  PrimaryFunctionFormSet = inlineformset_factory(Position,Function)
  if 'add' in request.POST:
    cp = request.POST.copy()
    cp['prim-TOTAL_FORMS'] = int(cp['prim-TOTAL_FORMS'])+ 1
    prims = PrimaryFunctionFormSet(cp,prefix='prim')

Spucken Sie dann einfach die Form wie gewohnt aus. Hält Ihre Daten, fügt einen Inline -Editor hinzu.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top