Looking for django-admin Answers? Try Ask4KnowledgeBase
Looking for django-admin Keywords? Try Ask4Keywords

django-adminErste Schritte mit django-admin


Bemerkungen

Django Admin ist die CRUD-Schnittstelle des Django- Web-Frameworks. Es wird meist automatisch generiert, kann aber weitgehend angepasst werden. Sie müssen jedoch beachten, dass es nur für vertrauenswürdige Benutzer gedacht ist und Grenzen hat. In keinem Fall dürfen Sie nicht vertrauenswürdigen Benutzern Administratorzugriff gewähren .

Django Admin bietet ein hohes Maß an Anpassungsmöglichkeiten. Achten Sie jedoch darauf, nicht zu viele Anpassungsdetails zu verlieren. Wenn Sie dies tun, ist es wahrscheinlich an der Zeit, eine eigene Benutzeroberfläche ohne Django Admin zu erstellen.

Ressourcen

Versionen

Ausführung Veröffentlichungsdatum
1.10 2106-08-01
1,9 2015-12-01
1.8 01.04.2015
1.7 2014-09-02
1.6 2013-11-06
1,5 2013-02-26
1.4 2012-03-23
1.3 2011-03-23
1.2 2010-05-17
1.1 2009-07-29
1,0 2008-09-03

Django-Administrator einrichten

Alles, was Sie benötigen, um mit dem Django-Administrator zu beginnen, ist bereits in Djangos Standardprojektlayout eingerichtet. Das beinhaltet:

# settings.py

# `django.contrib.admin` and its dependancies.
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    ...,
]

MIDDLEWARE = [
    ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    ...
]

TEMPLATES = [
    {
        ...,
        'OPTIONS': {
            'context_processors': [
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                ...
            ],
        },
    },
]
 

Seien Sie vorsichtig mit urls.py , das in Django> = 1.9 etwas anders ist als in älteren Versionen.

1,9
from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]
 
1,9
from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
]
 

Die Version mit include wird in Django 1.9 weiterhin funktionieren, ist aber veraltet und wird in der Zukunft entfernt.

Falls noch nicht geschehen, müssen Sie die Basismigrationen anwenden:

$ python manage.py migrate
 

Um auf den Admin zuzugreifen, müssen Sie auch einen Superuser erstellen mit:

$ python manage.py createsuperuser
 

Sobald dies erledigt ist, können Sie Ihren Server ausführen:

$ python manage.py runserver
 

Und besuchen Sie die Admin-Seite unter http://127.0.0.1:8000/admin/.

Fügen Sie den Admin-Seiten ein Modell hinzu

Wenn Sie Ihre eigenen Modelle in einer App erstellt haben, müssen diese noch registriert werden, um auf den Verwaltungsseiten verfügbar zu werden.

Dies geschieht im admin Modul. Wenn Ihre App mit manage.py startapp , sollte sich bereits eine admin.py Datei in admin.py App-Modul befinden. Ansonsten erstellen Sie es.

#myapp/admin.py
from django.contrib import admin
from myproject.myapp.models import MyModel

admin.site.register(MyModel)
 

Alle Optionen sind in der ModelAdmin-Unterklasse definiert. einige Optionen:

class MyCustomAdmin(admin.ModelAdmin):
    list_display = ('name','age','email')  # fields to display in the listing
    empty_value_display = '-empty-'        # display value when empty 
    list_filter = ('name', 'company')      # enable results filtering
    list_per_page = 25                     # number of items per page 
    ordering = ['-pub_date', 'name']       # Default results ordering

# and register it 
admin.site.register(MyModel, MyCustomAdmin)
 

Eine admin.register Methode zum Registrieren eines Modells ist die Verwendung des Dekorators admin.register :

@admin.register(MyModel)
class MyCustomAdmin(admin.ModelAdmin)
    ...
 

Passen Sie das django User Admin-Modell an

from django.contrib.auth.models import User    
class UserAdmin(admin.ModelAdmin):
    list_display = ('email', 'first_name', 'last_name')
    list_filter = ('is_staff', 'is_superuser')
    
admin.site.unregister(User) 
admin.site.register(User, UserAdmin)
 

Wir müssen die Registrierung des benutzerdefinierten UserAdmin aufheben, da in django User Model Admin bereits registriert ist. Daher müssen Sie zuerst das User Model in unserer admin.py abmelden. Anschließend können Sie das User Model mit dem benutzerdefinierten ModelAdmin registrieren

Entfernen Sie ein Modell aus den Admin-Seiten

Django Admin wird standardmäßig mit einigen registrierten Modellen geliefert. Es gibt einige Situationen, in denen Sie ein Modell möglicherweise von den Verwaltungsseiten entfernen möchten.

Dies geschieht im admin Modul. Wenn Ihre App mit manage.py startapp , sollte die Datei admin.py bereits in Ihrem App-Modul liegen. Ansonsten erstellen Sie es.

#myapp/admin.py
from django.contrib import admin
from django.contrib.auth.models import User

admin.site.unregister(User)