Frage

Ich will eine Modellklasse von einem 3rd-Party-Code erben. Ich werde nicht einige der Felder verwenden wollen aber mein Kunde in der Lage sein, das Modell in Admin zu bearbeiten. Ist die beste Wette sie von Admin verstecken oder kann ich sie eigentlich verhindern in erster Linie erstellt werden?

Außerdem - was kann ich tun, wenn eine der unerwünschten Felder erforderlich ist? Mein erster Gedanke ist es, die Save-Methode außer Kraft zu setzen und nur in einem Standardwert setzen.

War es hilfreich?

Lösung

Wenn Sie das Modell erben dann ist es wahrscheinlich nicht klug, zu versuchen, alle vorhandenen Felder zu verbergen oder zu deaktivieren. Das Beste, was Sie wahrscheinlich tun können, ist genau das, was Sie vorgeschlagen: Überschreibung save() und behandeln Ihre Logik drin.

Andere Tipps

Sie können die Felder steuern, die im Admin bearbeitet werden können.

Von der Django-Dokumentation:

"Wenn Sie ein Formular für den Autor Modell möchten, die nur den Namen und die Titelfelder enthält, würden Sie Felder angeben oder wie folgt ausschließen:

class AuthorAdmin(admin.ModelAdmin):
    fields = ('name', 'title')

class AuthorAdmin(admin.ModelAdmin):
    exclude = ('birth_date',)"

http://docs.djangoproject.com/en/dev/ ref / contrib / admin /

Anstatt erben, sollten Sie benutzerdefinierte Formulare verwenden.

  1. Sie Felder aus der Anzeige beseitigen, die noch im Modell vorhanden sind.

  2. Sie können Standardwerte in Form der clean() Methode validieren und liefern.

Siehe http : //docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top