Im Zuge des Sprints auf Django 1.0 wurde nun im
trunk die Admin-App so aktualisiert, dass newforms verwendet werden. Zwar ergeben sich dadurch wirklich tolle Möglichkeiten, allerdings sind diese Änderungen leider nicht rückwärtskompatibel und man muss Dinge im eigenen Code zwangsläufig anpassen.
Aber aufgrund der tollen Dokumentation von Django ist das kein sonderlich großes Unterfangen, wie ich freudig festgestellt habe.
Wer sich den neuesten trunk aus dem SVN auscheckt und dann den Entwicklungsserver startet, wird Fehlermeldungen wie z.B. diese erhalten:
TypeError: __init__() got an unexpected keyword argument 'prepopulate_from'
Das liegt daran, dass nun Model-Definitionen von Angaben für die Admin-App bereinigt wurde. Diese Angaben wandern nun in eine extra Klasse, die dann in der Admin-App registriert wird. Dies bringt einige Vorteile: Man kann munter neue Klassen von früheren ableiten und sich sogar mehrere Admin-Oberflächen basteln, die unter verschiedenen URLs erreichbar sind (zum Beispiel darf dann Klaus nur den Admin-Bereich Bäckerei betreten und neues Gebäck zur Datenbank hinzufügen, während Egon nur die Getränkdatenbank bearbeitet und neue Bier-Sorten eintragen kann). Außerdem macht das Model-Definitionen übersichtlicher und sorgt für eine logische Trennung.
Eine schöne Übersicht, was man damit alles anstellen kann, gibts im
Django-Wiki.
Es gibt zu der Sache auch einen sehr guten Screencast, den man sich erstmal anschauen sollte in folgendem Artikel:
http://oebfare.com/blog/2008/jul/20/newforms-admin-migration-and-screencast/
Die Änderungen im Detail und was zu tun ist, kann man auch nochmal auf einer
Wiki-Seite nachlesen.
Kommentar schreiben