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 URLpatternpl. urlpatterns = patterns('', # pl. (r'^admin/', include(admin.site.urls)), # pl. )
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: admin@w3cschool.cc 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.