Latest web development tutorials

Django Admin Management Tools

Django bietet eine Web-basierte Management-Tools.

Django automatisierten Management-Tools sind Teil von django.contrib. Sie können es in settings.py in INSTALLED_APPS Artikel finden Sie unter:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)

django.contrib ist ein riesiges Feature-Set, das Teil von Django Code-Basis ist.


Activation Management Tool

Wir richten in der Regel in urls.py automatisch zu dem Zeitpunkt Sie das Projekt erstellen, brauchen wir nur Kommentare zu entfernen.

Konfigurationselemente sind wie folgt:

from django.contrib import admin
admin.autodiscover()

# And include this URLpattern...
urlpatterns = patterns('',
    # ...
    (r'^admin/', include(admin.site.urls)),
    # ...
)

Wenn alles konfiguriert ist, kann Django-Management-Tools ausgeführt werden.


Mit Management-Tools

Starten Sie den Entwicklungs-Server, und dann den Browser zugreifen: http: // ihre_site: 8000 / admin /, um den folgenden Bildschirm zu erhalten:

Sie können Python manage.py createsuperuser Befehl ein Super - User zu erstellen, wie folgt:

# python manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.
[root@solar HelloWorld]#

einen Benutzernamen und Passwort anmelden Nach der Eingabe ist die Schnittstelle wie folgt:

Um Admin-Interface für die Verwaltung eines Datenmodells zu machen, müssen wir das Datenmodell Admin zu registrieren. Zum Beispiel haben wir vor TestModel Modell-Test erstellt. Ändern TestModel / admin.py:

from django.contrib import admin
from TestModel.models import Test

# Register your models here.
admin.site.register(Test)

Sie können die Aktualisierungs Testmodel Datenblatt:


komplexe Modelle

Leistungsstarke Administrationsseiten, vollständig in der Lage komplexere Datenmodelle Handhabung.

Eine erste Erhöhung in komplexeren Datenmodelle TestModel / models.py in:

from django.db import models

# Create your models here.
class Contact(models.Model):
    name   = models.CharField(max_length=200)
    age    = models.IntegerField(default=0)
    email  = models.EmailField()
    def __unicode__(self):
        return self.name

class Tag(models.Model):
    contact = models.ForeignKey(Contact)
    name    = models.CharField(max_length=50)
    def __unicode__(self):
        return self.name

Es gibt zwei Tabellen. Kontakt Tag an einen externen Schlüssel. Kontakt einer Mehrzahl von Tag entsprechen.

Wir können auch viele Attribut sehen nicht gesehen Typ, wie Integer speichern eine ganze Zahl.

In TestModel / admin.py mehrere Modelle und zeigen registrieren:

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
admin.site.register([Test, Contact, Tag])

Aktualisieren Verwaltungsseite zeigen die folgenden Ergebnisse:

In den oben genannten Management-Tools können wir komplexe Vorgänge zu modellieren.


Custom Form

Wir können die Verwaltungsseiten, anstelle der Standard-Seite anpassen. Zum Beispiel: "add" der oben genannten Seite. Wir wollen nur den Namen und die E-Mail-Abschnitt zu zeigen. Ändern TestModel / admin.py:

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class ContactAdmin(admin.ModelAdmin):
    fields = ('name', 'email')

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test, Tag])

ContactAdmin oben Code definiert eine Klasse, um die Anzeigeformat-Management-Seite darzustellen.

Innerhalb der Felder definiert Eigenschaft die Felder angezeigt werden.

Als solche ist die Daten entsprechen Modell unser Schild Kontakt, wenn sie zusammen registriert werden müssen. Zeigen Sie wie folgt vor:

Wir können auch Eingabefelder sperren kann jedes Feld auch ein eigenes Format definieren. Ändern TestModel / admin.py wie folgt:

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class ContactAdmin(admin.ModelAdmin):
    fieldsets = (
        ['Main',{
            'fields':('name','email'),
        }],
        ['Advance',{
            'classes': ('collapse',), # CSS
            'fields': ('age',),
        }]
    )

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test, Tag])

Der obige Abschnitt gliedert sich in zwei Teile, Main und Voraus. Klassen beschrieben in der CSS-Formatabschnitt. Hier lassen Vorausteilweise versteckt:

Voraus nächsten Abschnitt hat eine Schaltfläche Show für die Erweiterung, erweitert Klick ausblenden zu verstecken, wie unten dargestellt:


Inline (Inline) Anzeige

Kontakt Tag ist über den externen Tasten, so gibt es eine externe Referenzbeziehung.

In der Standard-Seitenanzeige, trennte die beiden, nicht in der Lage, die Unterordnungsverhältnis zu reflektieren. Wir können die Inline-Display verwenden, so Tag an den Kontakt bearbeiten Seite angebracht wird angezeigt.

Ändern TestModel / admin.py:

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class TagInline(admin.TabularInline):
    model = Tag

class ContactAdmin(admin.ModelAdmin):
    inlines = [TagInline]  # Inline
    fieldsets = (
        ['Main',{
            'fields':('name','email'),
        }],
        ['Advance',{
            'classes': ('collapse',),
            'fields': ('age',),
        }]

    )

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test])

Zeigen Sie wie folgt vor:


Zeigt eine Liste der Seite

Geben Sie die Nummer in die Kontaktdatensätze, Kontaktliste Seite sieht wie folgt aus:

Wir können auch die Anzeige der Seite, wie Anzeige mehr Spalten in der Liste anpassen, fügen Sie einfach list_display Immobilien in ContactAdmin in:

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class ContactAdmin(admin.ModelAdmin):
    list_display = ('name','age', 'email') # list

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test, Tag])

Aktualisieren Sie die Seite Display wie folgt:

Suchfunktionen, wenn sehr große Anzahl von Datensätzen verwalten, können wir die Suchleiste verwenden search_fields Seite für die Liste zu erhöhen:

from django.contrib import admin
from TestModel.models import Test,Contact,Tag

# Register your models here.
class ContactAdmin(admin.ModelAdmin):
    list_display = ('name','age', 'email') 
    search_fields = ('name',)

admin.site.register(Contact, ContactAdmin)
admin.site.register([Test])

In diesem Beispiel suchen wir nach einem Namen für die w3cschool.cc (Website Domain-Namen), zeigen die folgenden Ergebnisse:

Django Admin Management Tools Es gibt viele nützliche Funktionen, interessierte Schüler in Tiefe studieren kann die nächste.