.NET Summit 2016 München: Angular 2 mit TypeScript
Der Django-Admin-Bereich im Überblick
1. 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
2. Andi Albrecht – @andialbrecht
Erster Python-Kontakt vor etwa 10 Jahren als
Studentische Hilfskraft bei der DFG
Aktuell: Anwendungsentwickler für Webapplikationen bei
ProUnix in Bonn
Entwicklung und Pflege mittlerer und großer Systeme
OpenSource: 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
3. Ü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
4. Um was geht es?
Grundlegende Konfiguration Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
... ......
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
6. Grundlegende Konfiguration
Autodiscover & Sites
settings.py
INSTALLED_APPS = (
…
’django.contrib.admin’, Ñ Admin ist eine App
…
)
urls.py
from django.contrib import admin
admin.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
7. Grundlegende Konfiguration
Autodiscover & Sites
settings.py
INSTALLED_APPS = (
…
’django.contrib.admin’, Ñ Admin ist eine App
…
)
urls.py
from django.contrib import admin
admin.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
8. Grundlegende Konfiguration
Autodiscover & Sites
settings.py
INSTALLED_APPS = (
…
’django.contrib.admin’, Ñ Admin ist eine App
…
)
urls.py
from django.contrib import admin
admin.autodiscover() Ñ sucht nach admin.py in Apps
urlpatterns = patterns(”,
… Ñ URLs der Default-Admin-Site
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
9. Grundlegende Konfiguration
Admin-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
10. Grundlegende Konfiguration
Admin-Models für Models
myapp
|– __init__.py
|– views.py
|– models.py
|– admin.py
from django.contrib import admin
from 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
11. Grundlegende Konfiguration
Admin-Models für Models
myapp
|– __init__.py
|– views.py
|– models.py
|– admin.py
from django.contrib import admin
from 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
12. Grundlegende Konfiguration
Berechtigungen
Admin-Bereich baut auf Apps Ñ Models Ñ
Berechtigungen auf
Zugang 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 nach
Model-Berechtigungen:
MyModel.can_add
MyModel.can_change
MyModel.can_delete
Achtung: Keine Berechtigung MyModel.can_view!
Grundlegende Konfiguration Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
... ......
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
13. 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
14. Views
Objektliste
Grundlegende Konfiguration Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
... ......
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
15. Views
Objektliste
Grundlegende Konfiguration Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
... ......
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
20. Views
Detailansicht, 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
21. Methoden des ModelAdmin
Objekte, 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
22. Methoden des ModelAdmin
Views, 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
23. Weiterführende Themen
Anpassung von Templates
Anpassung des gesamten LookFeels (django-admin-tools,
Grappelli)
Hinzufügen eigener Views (Stichwort:
ModelAdmin.get_urls())
Hinzufügen eigener Aktionen auf Objekten
Hinzufügen eigener Filter
Grundlegende Konfiguration Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
... ......
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
24. Weiterführende Themen
RT(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
25. Weiterführende Themen
Read the Source!
Grundlegende Konfiguration Views Methoden des ModelAdmin Weiterführende Themen Vorteile & Nachteile
... ......
Django-Admin-Bereich / Andi Albrecht / PyCon DE 2012
26. Vorteile & Nachteile
Admin-Bereich Out-of-the-box, nur wenig Konfiguration
nötig
Administration von Daten, Aufbau von Test-Daten
Nebenbei Geenprüfung der Datenstrukturen für Entwickler
Einfach konfigurierbar, in vielen Details konfigurierbar
"dicke" Apps nutzen den Admin-Bereich (CMS, Shop)
Admin-Bereich bildet eine technische Sicht (Datenbank)
ab, aber keine fachliche
Nutzer brauchen Staff-Flag
Versuch, den Admin-Bereich Endnutzer-freundlich zu
gestalten scheitert
Admin-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