Latest web development tutorials

Strumenti di gestione Django Admin

Django fornisce un tool di gestione web-based.

Django strumenti di gestione automatizzata sono parte di django.contrib. Lo si può vedere in settings.py in articoli INSTALLED_APPS:

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

django.contrib è un set di funzionalità enorme, che fa parte della base di codice Django.


Strumento di gestione attivazione

Noi di solito istituito in urls.py automaticamente al momento della creazione del progetto, abbiamo solo bisogno di rimuovere i commenti.

elementi di configurazione sono le seguenti:

from django.contrib import admin
admin.autodiscover()

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

Quando è tutto configurato, gli strumenti di gestione di Django possono essere eseguiti.


Uso degli strumenti di gestione

Avviare il server di sviluppo, e quindi accedere al browser: http: // yoursite: 8000 / admin /, per ottenere la seguente schermata:

È possibile comandare pitone manage.py createsuperuser per creare un super utente, come segue:

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

Dopo aver inserito un nome utente e una password di accesso, l'interfaccia è la seguente:

Per rendere l'interfaccia di amministrazione per la gestione di un modello di dati, è necessario registrare il modello di dati a Admin. Ad esempio, siamo stati creati prima del modello TestModel test. Modificare TestModel / admin.py:

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

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

Si può vedere la scheda tecnica di aggiornamento Testmodel:


modelli complessi

pagine di amministrazione potenti, perfettamente in grado di gestire modelli di dati più complessi.

Un primo aumento di più complessi modelli di dati 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

Ci sono due tavoli. Contatto Tag di un tasto esterno. Il contatto può corrispondere ad una pluralità di tag.

Possiamo anche vedere il tipo molti attribuiscono non visto prima, come IntegerField memorizzare un numero intero.

In TestModel / admin.py registrare più modelli e spettacolo:

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

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

Aggiorna pagina di amministrazione, mostrano i seguenti risultati:

Negli strumenti di gestione di cui sopra possiamo modellare operazioni complesse.


modulo personalizzato

Possiamo personalizzare le pagine di amministrazione, al posto della pagina predefinita. Ad esempio, il sopra "add" pagina. Vogliamo mostrare solo il nome e la sezione e-mail. Modificare 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 sopra il codice definisce una classe per illustrare la pagina di gestione formato di visualizzazione.

All'interno dei campi di proprietà definisce i campi da visualizzare.

Come tale il dato modello corrisponde Contattate il nostro segno quando hanno bisogno di essere registrati insieme. Display nel modo seguente:

Possiamo anche bloccare i campi di input, ogni campo può anche definire il proprio formato. Modificare TestModel / admin.py come segue:

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])

La sezione di cui sopra è divisa in due parti, una principale e Advance. classi descritte nella sezione formato CSS. Qui, lascia Advance parzialmente nascosto:

Advance successiva sezione ha un pulsante Mostra per l'espansione, espansa fare clic su Nascondi per nascondere, come illustrato di seguito:


Inline display (in linea)

Contatto Tag è al di sopra dei tasti esterni, per cui vi è un rapporto di riferimento esterno.

Nella visualizzazione della pagina di default, i due separati, in grado di riflettere il rapporto di subordinazione. Siamo in grado di utilizzare il display in linea, quindi viene visualizzato Nome collegato alla pagina di contatto di modifica.

Modificare 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])

Display nel modo seguente:


Consente di visualizzare un elenco di pagina

Inserire il numero dei record di contatto, pagina Elenco contatti si presenta così:

Possiamo anche personalizzare la visualizzazione della pagina, come la visualizzazione più colonne nella lista, è sufficiente aggiungere list_display proprietà 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])

Aggiornare la visualizzazione della pagina nel modo seguente:

funzionalità di ricerca quando la gestione di un gran numero di record molto, siamo in grado di utilizzare la barra di ricerca per aumentare la search_fields pagina per la lista:

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 questo esempio, cercare un nome per il w3cschool.cc (nome di dominio del sito), mostrano i seguenti risultati:

Django Admin Strumenti di gestione Ci sono molte funzioni utili, gli studenti interessati possono studiare in profondità il prossimo.