Kann ich in Django admin Felder in einem Modell anfordern, aber nicht, wenn es inline ist?

8

In django admin gibt es Felder, die ich benötigen würde, wenn ein Modell eigenständig bearbeitet wird. Wenn es inline ist, möchte ich nicht, dass sie benötigt werden. Gibt es eine Möglichkeit, dies zu tun?

    
Mitch 29.06.2009, 20:16
quelle

2 Antworten

17

Während Daniel Rosemans Antwort funktioniert, ist es nicht die beste Lösung. Es erfordert ein wenig Code-Duplizierung, indem Sie das Formularfeld erneut deklarieren müssen. Wenn Sie zum Beispiel ein verbose_name für dieses Feld hätten, müssten Sie auch label='My verbose_name already set on model' zur Zeile CharField hinzufügen, da bei einer erneuten Deklaration des gesamten Felds grundsätzlich alles gelöscht wird, was in Ihrem Modell für dieses Feld eingestellt ist.

Der bessere Ansatz besteht darin, die Methode __init__ des Formulars zu überschreiben und explizit field.required auf True oder False zu setzen.

%Vor%     
Chris Pratt 29.04.2011, 21:22
quelle
10

Sicher. Definieren Sie einfach ein benutzerdefiniertes Formular, wobei Ihr erforderliches Feld überschrieben werden muss, um required = True festzulegen, und verwenden Sie es in Ihrer Admin-Klasse.

%Vor%

Also verwendet MyAdmin das überschriebene Formular, aber MyInlineAdmin nicht.

    
Daniel Roseman 30.06.2009 06:45
quelle

Tags und Links