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?
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.
Wie in Erstellen von Formularen aus Modellen - Auswählen der Felder zu verwenden gibt es drei Möglichkeiten:
editable=False
. Alle aus dem Modell erstellten Formulare schließen das Feld aus. fields
in der inneren Klasse Meta
, um nur die gewünschten Felder einzuschließen. 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:
Und Technik # 3 würde so aussehen:
%Vor%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.
Tags und Links django