Django ModelChoiceField hat keine Plus-Schaltfläche

9

Ich mache eine Django-App mit benutzerdefinierten Nutzern. Ich habe unten die Schlüsselkomponenten meines Problems skizziert, fehlender Code ist mit '...' gekennzeichnet. Mein benutzerdefiniertes Benutzermodell hat eine Fremdschlüsselbeziehung wie folgt:

%Vor%

Ich habe ein benutzerdefiniertes Benutzerformular geschrieben, das dieses Feld wie folgt enthält:

%Vor%

Dies scheint alles richtig zu funktionieren, jedoch gibt es keine Schaltfläche "Plus" rechts neben dem Auswahlfeld für den Standort. Ich möchte in der Lage sein, einen Standort hinzuzufügen, wenn ich einen Benutzer erstelle, genauso wie Sie Umfragen hinzufügen können, wenn Sie Auswahlmöglichkeiten in der Django tutorial . Laut auf diese Frage könnte ich nicht Siehe das grüne Plus, wenn ich keine Berechtigung zum Ändern des Modells habe, aber ich bin als Superuser mit allen Berechtigungen angemeldet. Irgendeine Idee, was ich falsch mache?

    
EmeraldOwl 03.09.2013, 22:32
quelle

3 Antworten

11

Sie müssen einen RelatedFieldWidgetWrapper -Wrapper in Ihrem Modell angeben:

  

The RelatedFieldWidgetWrapper (gefunden in django.contrib.admin.widgets)   wird in den Admin-Seiten verwendet, um die Funktion für einen Fremdschlüssel einzubinden   Steuerelement, um einen neuen verwandten Datensatz hinzuzufügen. (In Englisch: setzt das kleine grüne Pluszeichen rechts neben dem Steuerelement.)

%Vor%

Ich könnte im Beispielcode einen Fehler machen, siehe diese Posts und Beispiele:

alecxe 03.09.2013, 22:45
quelle
6

Ich habe eine Methode basierend auf den obigen Antworten erstellt:

%Vor%

Und dann diese Methode aus meinem Formular aufrufen:

%Vor%

Das funktioniert auf Django 1.8.2 gut.

    
dan.goriaynov 20.08.2015 07:20
quelle
2

Google hat mich auf diese Seite gelenkt, als ich nach einem "+" - Symbol neben Feldern in einem benutzerdefinierten Formular mit ForeignKey-Beziehung gesucht habe. Daher dachte ich, ich würde hinzufügen.

Für mich war die Verwendung von django-autocomplete-light mit der Funktion "Add Another" sehr gut gelungen.

    
SaeX 21.03.2014 13:29
quelle