Najlepszy samouczek Django Admin Narzędzia zarządzania W 2024 r. W tym samouczku możesz dowiedzieć się Activation Management Tool,Korzystanie z narzędzi do zarządzania,złożone modele,niestandardowe Formularz,Inline (inline) Wyświetlacz,Wyświetla listę stronie,

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.

Django Admin Narzędzia zarządzania
10/30