Entfernen Sie Felder aus ModelForm

8

Ich habe eine einfache ModelForm:

%Vor%

Wie Sie sehen können, versuche ich ein Feld aus der Feldliste des Formulars zu entfernen (das Feld existiert definitiv im Modell), aber ich bekomme eine Ausnahme:

%Vor%

Ich habe kein benutzerdefiniertes Formular geschrieben, daher lautet die Vorlage, in der der Fehler auftritt:

%Vor%

Irgendwelche Ideen?

- AKTUALISIEREN -

Das Problem tritt nur im Admin-Bereich auf.

- UPDATE 2 -

Vielleicht gibt ein Trace-Dump mehr Informationen:

%Vor%

Im Adminbereich verwende ich das Grapelli-Theme. Vielleicht hat das mit dem Problem zu tun?

    
schneck 23.09.2009, 14:49
quelle

5 Antworten

13

Ich hatte das gleiche Problem. So habe ich es im neuen Django (Stamm) geschafft:

%Vor%

Durch Überschreiben der Methode get_form und Setzen der Logik hier können Sie auswählen, welche Form angezeigt werden soll. Oben habe ich das Standardformular angezeigt, wenn eine Bedingung erfüllt wurde.

    
wunki 16.12.2009 14:00
quelle
6

Wie in Erstellen von Formularen aus Modellen - Auswählen der Felder zu verwenden gibt es drei Möglichkeiten:

  1. Setzen Sie im Modell editable=False . Alle aus dem Modell erstellten Formulare schließen das Feld aus.
  2. Definieren Sie das Attribut fields in der inneren Klasse Meta , um nur die gewünschten Felder einzuschließen.
  3. Definieren Sie das Attribut exclude in der inneren Klasse Meta , um die nicht gewünschten Felder aufzulisten.

Wenn also Ihr Modell die Felder field1 , field2 und field3 hat und Sie field3 nicht möchten, würde Technik # 2 wie folgt aussehen:

%Vor%

Und Technik # 3 würde so aussehen:

%Vor%     
Selene 24.09.2009 07:33
quelle
2

Das funktioniert großartig ...

%Vor%     
oak 07.02.2012 20:20
quelle
0

Sie können die Eigenschaft exclude verwenden, um Felder aus einem ModelForm

zu entfernen %Vor%     
M. Ryan 23.09.2009 14:54
quelle
0

Eine mögliche Ursache ist, dass Ihre ModelAdmin-Klasse, die Ihr benutzerdefiniertes Formular verwendet, widersprüchliche Einstellungen aufweist. Zum Beispiel, wenn Sie das 'Name'-Feld innerhalb von' fields 'oder' fieldsets 'Ihres ModelAdmin explizit angegeben haben.

    
Botond Béres 23.09.2009 15:28
quelle

Tags und Links