django-admin - Wie ändert man ModelAdmin, um mehrere Objekte gleichzeitig zu erstellen?

8

Nehmen wir an, ich habe ein sehr einfaches Modell

%Vor%

Dieses Modell ist im Admin-Modul registriert:

%Vor%

Momentan, wenn ich auf die Admin-Oberfläche gehe, nachdem ich auf "Nachricht hinzufügen" geklickt habe, habe ich nur ein Formular, wo ich msg eingeben kann.

Ich hätte gerne mehrere Formulare (Formularsatz vielleicht) auf der "Seite hinzufügen", so dass ich mehrere Nachrichten gleichzeitig erstellen kann. Es ist wirklich ärgerlich, jedes Mal auf "Speichern und Hinzufügen" klicken zu müssen.

Idealerweise möchte ich etwas wie InlineModelAdmin erreichen, aber es stellt sich heraus, dass Sie es nur für die Modelle verwenden können, die mit dem Objekt zusammenhängen, das bearbeitet wird.

Was würden Sie zur Lösung dieses Problems empfehlen?

    
skrobul 07.06.2010, 22:09
quelle

3 Antworten

3

Dies ist möglicherweise nicht genau das, was Sie suchen, aber wenn Sie mehrere Objekte gleichzeitig erstellen möchten, können Sie etwas ähnliches tun:

%Vor%

Grundsätzlich erstellen Sie ein benutzerdefiniertes Formular für Ihre Admin-Vorlage, das den Benutzer fragt, wie oft das Objekt erstellt werden soll. Die Logik wird dann in der save_model-Methode interpretiert.

    
hermansc 05.02.2011 01:51
quelle
1

Zur Problemumgehung: Da ist es wahrscheinlich, dass Sie einen FK für User haben, sodass Sie% InlineModel für das User -Modell definieren können.

Andernfalls kann es am einfachsten sein, eine benutzerdefinierte Admin-Ansicht zu erstellen, da es keine generische Admin-Ansicht gibt, die Formsets anzeigt und speichert.

    
Lakshman Prasad 08.06.2010 11:52
quelle
0

Dies ist einfach, wenn Sie eine Inline verwenden. Dann könnten Sie extra = 10 oder beliebig viele zusätzliche Formsets verwenden. Es scheint keine Entsprechung für ModelAdmin zu geben.

Natürlich müssten Sie in Ihrem Nachrichtenmodell ein ForeignKey für eine Art von Nachrichtengruppierungsmodell als eine weitere Funktionsebene erstellen und das Multi-Formularsatz-Layout erhalten, nach dem Sie suchen.

Zum Beispiel:

%Vor%

Dies würde Ihnen geben, was Sie in der Admin-Ansicht wollen und Gruppierung erstellen (selbst wenn Sie nur eine Gruppe zulassen) und das einzige zusätzliche Feld wäre name im Gruppenmodell. Ich bin mir nicht einmal sicher, ob du das brauchen würdest. Ich bin auch sicher, dass der Wert für extra dynamisch für einen beliebigen Wert generiert werden könnte.

Ich hoffe, das hilft!

    
e.thompsy 21.02.2014 02:57
quelle