Django: Wie erstelle ich eine komplexe Admin-Aktion, die zusätzliche Informationen benötigt?

8

Ich bin daran interessiert, eine Aktion für die Admin-Oberfläche zu erstellen, die zusätzliche Informationen benötigt, die über die ausgewählten Elemente hinausgehen. Mein Beispiel ist Massen-Hinzufügen von Comics zu einer Serie. (Ja, ich weiß, dass die offensichtliche Antwort darin besteht, ein Schema mit X-zu-X-Beziehungen zu erstellen, aber bloß um eines einfachen Beispiels willen).

In diesem Beispiel habe ich 100 Comics erstellt. Nachdem sie erstellt wurden, möchte ich sie mit einem bereits erstellten Serienobjekt verknüpfen. Um diese Aktion innerhalb des Administrators auszuführen, möchte ich die Elemente auswählen und dann die Aktion initiieren. Ich sollte dann gefragt werden, welches Serienobjekt zu verwenden ist (über ein Popup, Zwischenformular usw.).

Ich habe die Anweisungen hier gefolgt, die behaupten bewerkstelligen Sie dies über eine Zwischenform. Nachdem ich damit gearbeitet habe, bekomme ich keine weiteren Fehler mehr, aber die Aktion selbst wird auch nicht ausgeführt - der Forloop wird nie ausgeführt. Stattdessen kehrt es zur Admin-Liste von Comics mit der Nachricht zurück: "Keine Aktion ausgewählt."

Meine admin.py-Methode:

%Vor%

Mein Zwischenformular setSeries.html:

%Vor%     
tjw 31.08.2010, 00:20
quelle

1 Antwort

5

Eine Sache, die ich bemerke, ist, dass die Methode Ihrer Aktion "addSeries" ist, aber in der Form, die Sie sie "changeSeries" nennen.

In Ihrem ModelAdmin sollten Sie eine Zeile wie folgt haben:

%Vor%

Wenn das die Zeile ist, die Sie haben, müssen Sie ändern:

%Vor%

zu:

%Vor%

So weiß Djangos Administrator, welche Aktion ausgewählt wurde. Wenn Sie zwischen der Auswahl der Aktion und der Ausführung der Aktion ein Zwischenformular haben, müssen Sie den Aktionsnamen aus dem Auswahlmenü auf der Administratoroberfläche beibehalten.

    
Jerry Stratton 02.09.2010, 16:08
quelle

Tags und Links