der django-admin-bereich im Überblick
DESCRIPTION
Vortrag auf der PyConDE 2012 am 31. Oktober 2012.TRANSCRIPT
Der Django-Admin-Bereich imÜberblick
Andi Albrecht
PyCon DE 2012
31. Oktober 2012
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Andi Albrecht – @andialbrecht
Erster Python-Kontakt vor etwa 10 Jahren alsStudentische Hilfskraft bei der DFGAktuell: Anwendungsentwickler für Webapplikationen beiProUnix in BonnEntwicklung und Pflege mittlerer und großer SystemeOpenSource: Rietveld Code Review Tool,python-sqlparse, CrunchyFrog, hgsvn, ...
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Übersicht
Grundlegende Konfiguration
Views
Methoden des ModelAdmin
Weiterführende Themen
Vorteile & Nachteile
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Umwas geht es?
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Grundlegende KonfigurationAutodiscover & Sites
settings.pyINSTALLED_APPS = (…’django.contrib.admin’,…
)
urls.pyfrom django.contrib import adminadmin.autodiscover()
urlpatterns = patterns(”,…url(r’^admin/’, include(admin.site.urls)),…
)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Grundlegende KonfigurationAutodiscover & Sites
settings.pyINSTALLED_APPS = (…’django.contrib.admin’, Ñ Admin ist eine App…
)
urls.pyfrom django.contrib import adminadmin.autodiscover()
urlpatterns = patterns(”,…url(r’^admin/’, include(admin.site.urls)),…
)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Grundlegende KonfigurationAutodiscover & Sites
settings.pyINSTALLED_APPS = (…’django.contrib.admin’, Ñ Admin ist eine App…
)
urls.pyfrom django.contrib import adminadmin.autodiscover() Ñ sucht nach admin.py in Apps
urlpatterns = patterns(”,…url(r’^admin/’, include(admin.site.urls)),…
)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Grundlegende KonfigurationAutodiscover & Sites
settings.pyINSTALLED_APPS = (…’django.contrib.admin’, Ñ Admin ist eine App…
)
urls.pyfrom django.contrib import adminadmin.autodiscover() Ñ sucht nach admin.py in Apps
urlpatterns = patterns(”,… Ñ URLs der Default-Admin-Siteurl(r’^admin/’, include(admin.site.urls)),…
)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Grundlegende KonfigurationAdmin-Models für Models
myapp|– __init__.py|– views.py|– models.py|– admin.py
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Grundlegende KonfigurationAdmin-Models für Models
myapp|– __init__.py|– views.py|– models.py|– admin.py
from django.contrib import adminfrom library import models
class BookAdmin(admin.ModelAdmin):pass
admin.site.register(models.Book, BookAdmin)admin.site.register(models.Author, admin.ModelAdmin)admin.site.register(models.Publisher, admin.ModelAdmin)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Grundlegende KonfigurationAdmin-Models für Models
myapp|– __init__.py|– views.py|– models.py|– admin.py
from django.contrib import adminfrom library import models
class BookAdmin(admin.ModelAdmin):pass
admin.site.register(models.Book, BookAdmin)admin.site.register(models.Author, admin.ModelAdmin)admin.site.register(models.Publisher, admin.ModelAdmin)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Grundlegende KonfigurationBerechtigungen
Admin-Bereich baut auf Apps Ñ Models Ñ
Berechtigungen aufZugang zum Admin nur für aktive User mit is_staff-Flag(Redakteur)Superuser darf immer alles (war ja klar...)Sichtbarkeit von Models / Apps richtet sich dann nachModel-Berechtigungen:
MyModel.can_addMyModel.can_changeMyModel.can_deleteAchtung: Keine Berechtigung MyModel.can_view!
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
ViewsÜbersicht
App-Dashboard Alle Apps mit Zugriff auf mind. 1 Modelë Model-Liste Alle Models einer App auf die ein Nutzer Zugriff hat
ë Objektliste Alle(!) Objekte zu einem Modelë Detailansicht Formular zum Bearbeiten eines Objekts
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
ViewsObjektliste
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
ViewsObjektliste
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
ViewsObjektliste, Konfiguration
class AuthorAdmin(admin.ModelAdmin):list_display = (’id’, ’__unicode__’, ’num_books’)list_display_links = (’id’, ’__unicode__’)search_fields = (’first_name’, ’last_name’, ’book__title’)list_filter = (’book__publisher__name’,)
def num_books(self, obj):return obj.book_set.count()
num_books.short_description = _(u’Number of books’)
admin.site.register(models.Author, AuthorAdmin)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
ViewsObjektliste, Konfiguration
class AuthorAdmin(admin.ModelAdmin):list_display = (’id’, ’__unicode__’, ’num_books’)list_display_links = (’id’, ’__unicode__’)search_fields = (’first_name’, ’last_name’, ’book__title’)list_filter = (’book__publisher__name’,)
def num_books(self, obj):return obj.book_set.count() # DB-Abfrage je Objekt!
num_books.short_description = _(u’Number of books’)
admin.site.register(models.Author, AuthorAdmin)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
ViewsObjektliste, Konfiguration
class Author(models.Model):first_name = models.CharField(max_length=100, verbose_name=_(u’First name’))last_name = models.CharField(max_length=100, verbose_name=_(u’Last name’))
def __unicode__(self):return u’%s %s’ % (self.first_name, self.last_name)
class Meta:verbose_name = _(u’Author’)verbose_name_plural = _(u’Authors’)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
ViewsDetailansicht
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
ViewsDetailansicht, Konfiguration
class BookInline(admin.TabularInline):model = models.Book
class AuthorAdmin(admin.ModelAdmin):[...]inlines = [BookInline,][...]
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Methoden des ModelAdminObjekte, Objektlisten
save|delete_model(self, request, obj[,form, change])get_ordering(self, request)queryset(self, request)
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Methoden des ModelAdminViews, Forms
get_form(self, request, obj=None, **kwargs)get_readonly_fields(self, request)get_urls(self)add|change|changelist|delete_view (self,request[, object_id, ...])
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Weiterführende Themen
Anpassung von TemplatesAnpassung des gesamten LookFeels (django-admin-tools,Grappelli)Hinzufügen eigener Views (Stichwort:ModelAdmin.get_urls())Hinzufügen eigener Aktionen auf ObjektenHinzufügen eigener Filter
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Weiterführende ThemenRT(F)D
https://docs.djangoproject.com/en/1.4/ref/contrib/admin/
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Weiterführende ThemenRead the Source!
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Vorteile & NachteileAdmin-Bereich Out-of-the-box, nur wenig KonfigurationnötigAdministration von Daten, Aufbau von Test-DatenNebenbei Geenprüfung der Datenstrukturen für EntwicklerEinfach konfigurierbar, in vielen Details konfigurierbar"dicke" Apps nutzen den Admin-Bereich (CMS, Shop)
Admin-Bereich bildet eine technische Sicht (Datenbank)ab, aber keine fachlicheNutzer brauchen Staff-FlagVersuch, den Admin-Bereich Endnutzer-freundlich zugestalten scheitertAdmin-Bereich ist für versierte Benutzer
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
Danke!
E-Mail [email protected]@gmail.com
Twitter @andialbrecht
Homepage http://andialbrecht.de
http://www.prounix.de/unternehmen/jobs/python/
prounix.de
. . .Grundlegende Konfiguration
. . . . . .Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012