Latest web development tutorials

Django Admin Management Tools

Django menyediakan alat manajemen berbasis web.

Django alat manajemen otomatis merupakan bagian dari django.contrib. Anda bisa melihatnya di settings.py di INSTALLED_APPS item:

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

django.contrib adalah seperangkat fitur besar, yang merupakan bagian dari basis kode Django.


Alat Manajemen aktivasi

Kami biasanya didirikan di urls.py otomatis pada saat Anda membangun proyek, kita hanya perlu untuk menghapus komentar.

item konfigurasi adalah sebagai berikut:

from django.contrib import admin
admin.autodiscover()

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

Ketika itu semua dikonfigurasi, alat manajemen Django dapat dijalankan.


Menggunakan Peralatan Manajemen

Mulai server pengembangan, dan kemudian mengakses browser: http: // yoursite: 8000 / admin /, untuk mendapatkan layar berikut:

Anda dapat perintah python manage.py createsuperuser untuk membuat super user, sebagai berikut:

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

Setelah memasukkan nama pengguna dan password login, antarmuka adalah sebagai berikut:

Untuk membuat antarmuka admin untuk mengelola model data, kita perlu mendaftarkan model data ke admin. Sebagai contoh, kita telah diciptakan sebelum Model TestModel Test. Memodifikasi TestModel / admin.py:

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

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

Anda dapat melihat lembar data penyegaran Testmodel:


model yang kompleks

halaman administrasi kuat, sepenuhnya mampu menangani model data yang lebih kompleks.

Sebuah kenaikan pertama dalam lebih kompleks model data yang TestModel / models.py di:

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

Ada dua meja. Hubungi Tag untuk kunci eksternal. Hubungi mungkin sesuai dengan pluralitas Tag.

Kita juga dapat melihat ketik banyak atribut tidak terlihat sebelumnya, seperti IntegerField menyimpan integer.

Dalam TestModel / admin.py mendaftar beberapa model dan menunjukkan:

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

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

halaman administrasi refresh, menunjukkan hasil sebagai berikut:

Dalam alat manajemen di atas kita dapat model operasi kompleks.


Form kustom

Kami dapat menyesuaikan halaman administrasi, bukan halaman default. Misalnya, di atas "menambahkan" halaman. Kami ingin menunjukkan hanya nama dan bagian email. Memodifikasi 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 atas kode mendefinisikan kelas untuk menggambarkan tampilan halaman manajemen format.

Dalam bidang properti mendefinisikan bidang yang akan ditampilkan.

Sebagai data tersebut model sesuai Hubungi tanda kami ketika mereka harus terdaftar bersama-sama. Tampilan sebagai berikut:

Kami juga dapat memblokir bidang input, masing-masing bidang juga dapat menentukan format Anda sendiri. Memodifikasi TestModel / admin.py sebagai berikut:

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

Bagian atas dibagi menjadi dua bagian, Main dan Advance. kelas menggambarkannya di bagian Format CSS. Di sini, biarkan Muka sebagian tersembunyi:

Muka bagian berikutnya memiliki tombol Show untuk ekspansi, diperluas klik Hide untuk menyembunyikan, seperti yang ditunjukkan di bawah ini:


Inline (inline) display

Hubungi Tag di atas tombol eksternal, sehingga ada hubungan referensi eksternal.

Dalam tampilan halaman default, dua terpisah, tidak dapat mencerminkan hubungan subordinasi. Kita dapat menggunakan display inline, sehingga Tag melekat pada halaman Kontak mengedit ditampilkan.

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

Tampilan sebagai berikut:


Menampilkan daftar halaman

Masukkan nomor dalam catatan kontak, daftar kontak halaman terlihat seperti ini:

Kami juga dapat menyesuaikan tampilan halaman, seperti kolom tampilan lebih dalam daftar, tambahkan saja list_display properti di ContactAdmin di:

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

Menyegarkan tampilan halaman sebagai berikut:

Cari kemampuan ketika mengelola sejumlah besar catatan yang sangat, kita dapat menggunakan search bar untuk meningkatkan halaman search_fields untuk daftar:

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

Dalam contoh ini, kita mencari nama untuk w3cschool.cc (situs nama domain), menunjukkan hasil sebagai berikut:

Django Admin Management Tools Ada banyak fitur yang berguna, mahasiswa yang tertarik dapat mempelajari secara mendalam berikutnya.