Latest web development tutorials

Django Admin Narzędzia zarządzania

Django zapewnia oparty na sieci Web narzędzi zarządzania.

Django narzędzia zautomatyzowanego zarządzania są częścią django.contrib. Można go zobaczyć w settings.py w pozycji INSTALLED_APPS:

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

django.contrib jest ogromny zestaw funkcji, który jest częścią Django kodu bazowego.


Activation Management Tool

Zwykle utworzona w urls.py automatycznie w momencie tworzenia projektu, musimy tylko usunąć komentarze.

elementy konfiguracji są następujące:

from django.contrib import admin
admin.autodiscover()

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

Kiedy to wszystko skonfigurowane, narzędzia do zarządzania Django może być uruchomiony.


Korzystanie z narzędzi do zarządzania

Uruchom serwer deweloperski, a następnie otworzyć przeglądarkę http: // twoja_witryna: 8000 / admin /, aby uzyskać następujący ekran:

Można dowodzić python manage.py createsuperuser stworzyć super użytkownika, jak następuje:

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

Po wprowadzeniu nazwy użytkownika i hasła logowania, interfejs jest w następujący sposób:

Aby interfejs administracyjny do zarządzania model danych, musimy zarejestrować model danych do administratora. Na przykład, zostały utworzone przed modelu TestModel Test. Modyfikacja TestModel / admin.py:

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

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

Można zobaczyć karcie odświeżania Testmodel:


złożone modele

Mocne strony administracji, w pełni zdolny do obsługi bardziej skomplikowanych modeli danych.

Pierwszy wzrost bardziej złożonych modeli danych TestModel / models.py w:

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

Istnieją dwie tabele. Kontakt Tag klucza zewnętrznego. Kontakt może odpowiadać wielu znaczników.

Widzimy też typem wielu atrybut nie widział, jak IntegerField przechowywać liczbę całkowitą.

W TestModel / admin.py zarejestrować wiele modeli i pokazać:

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

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

Odśwież stronę administracja, pokazują następujące wyniki:

W powyższych narzędzi zarządzania możemy modelować skomplikowane operacje.


niestandardowe Formularz

Możemy dostosować strony administracji, zamiast domyślnej strony. Na przykład, powyższa "add" stronę. Chcemy pokazać tylko nazwę i sekcję e-mail. Modyfikacja 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 Powyższy kod definiuje klasę ilustrujący stronę zarządzania format wyświetlania.

Wewnątrz pola właściwość określa pola mają być wyświetlane.

W takim modelu danych odpowiada skontaktować nasz znak, gdy muszą być zarejestrowane razem. Wyświetlanie w następujący sposób:

Możemy także zablokować pól wejściowych, każde pole może również zdefiniować własny format. Modyfikacja TestModel / admin.py w następujący sposób:

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

Powyższy rozdział jest podzielony na dwie części, główne i Advance. Klasy opisał go w sekcji formatu CSS. Pozwól, Advance częściowo ukryta:

Wczesny następna sekcja ma przycisk Pokaż na rozbudowę, rozszerzone kliknij opcję Ukryj, aby ukryć, jak pokazano poniżej:


Inline (inline) Wyświetlacz

Kontakt Tag jest powyżej klawiszy zewnętrznych, więc nie jest zewnętrznym związek odniesienia.

Na wyświetlaczu domyślną stronę, dwie rozdzielone, nie może odzwierciedlać relacje podporządkowania. Możemy korzystać z wyświetlacza inline, więc jest wyświetlane Tag dołączone do strony Kontakt edycji.

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

Wyświetlanie w następujący sposób:


Wyświetla listę stronie

Wprowadź numer w ewidencji kontaktowych, strona Lista kontaktów wygląda następująco:

Możemy również dostosować wygląd strony, takie jak wyświetlić więcej kolumn na liście, po prostu dodaj list_display nieruchomości w ContactAdmin w:

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

Odśwież wyświetlania strony w następujący sposób:

Możliwości wyszukiwania w przypadku zarządzania dużą liczbę rekordów bardzo, możemy skorzystać z paska wyszukiwania, aby zwiększyć search_fields aktualizacja listy:

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

W tym przykładzie, szukamy nazwy dla w3cschool.cc (nazwa domeny miejscu), wykazują następujące wyniki:

Narzędzia Django Admin zarządzania Istnieje wiele przydatnych funkcji, zainteresowani studenci mogą uczyć się w głębi następnego.