Latest web development tutorials

أدوات إدارة جانغو الادارية

يوفر جانغو أدوات إدارة على شبكة الإنترنت.

جانغو أدوات التحكم الآلي هي جزء من django.contrib. يمكنك أن ترى أنه في settings.py في البنود INSTALLED_APPS:

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

django.contrib هو مجموعة ميزة ضخمة، والتي هي جزء من رمز قاعدة جانغو.


أداة إدارة التنشيط

ونحن عادة اقامة في urls.py تلقائيا في الوقت الذي بناء المشروع، ونحن بحاجة فقط إلى إزالة التعليقات.

عناصر التكوين هي كما يلي:

from django.contrib import admin
admin.autodiscover()

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

عندما يكون تكوين كل شيء، يمكن تشغيل أدوات إدارة جانغو.


باستخدام أدوات إدارة

بدء تشغيل الخادم التنمية، ومن ثم الدخول إلى المتصفح: HTTP: // yoursite: 8000 / المشرف /، للحصول على الشاشة التالية:

يمكنك قيادة الثعبان manage.py createsuperuser لإنشاء مستخدم عظمى، على النحو التالي:

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

بعد إدخال اسم المستخدم وكلمة المرور لتسجيل الدخول، واجهة على النحو التالي:

لجعل واجهة إدارية لإدارة نموذج البيانات، ونحن بحاجة إلى تسجيل نموذج البيانات إلى admin. على سبيل المثال، لقد تم إنشاؤها من قبل نموذج TestModel اختبار. تعديل TestModel / admin.py:

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

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

يمكنك ان ترى ورقة البيانات تحديث Testmodel:


نماذج معقدة

صفحات الإدارة القوية، قادرة تماما على التعامل مع نماذج البيانات أكثر تعقيدا.

وأول زيادة في أكثر تعقيدا نماذج البيانات TestModel / models.py في:

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

هناك نوعان من الجداول. الاتصال علامة على مفتاح خارجي. الاتصال قد تتوافق مع عدد وافر من العلامات.

يمكننا أيضا أن نرى العديد من سمة نوع لم يشاهد من قبل، مثل IntegerField تخزين عدد صحيح.

في TestModel / admin.py تسجيل نماذج متعددة والعرض:

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

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

الصفحة إدارة التحديث، تظهر النتائج التالية:

في أدوات إدارة أعلاه يمكننا نمذجة العمليات المعقدة.


نموذج مخصص

يمكننا تخصيص صفحات الإدارة، بدلا من الصفحة الافتراضية. على سبيل المثال، ما سبق "إضافة" صفحة. نريد أن نظهر فقط اسم وقسم البريد الإلكتروني. تعديل 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 فوق القانون يحدد فئة لتوضيح عرض الصفحة إدارة الشكل.

داخل حقول الملكية تحدد المجالات ليتم عرضها.

على هذا النحو البيانات يتوافق نموذج الاتصال اللافتة عندما يحتاجون إلى أن تكون مسجلة معا. عرض على النحو التالي:

يمكننا أيضا منع حقول الإدخال، ويمكن كل حقل أيضا تحديد شكل الخاص بك. تعديل TestModel / admin.py على النحو التالي:

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

وينقسم قسم أعلاه إلى قسمين، الرئيسية والمتقدمة. ووصفت الطبقات في قسم تنسيق CSS. وهنا، اسمحوا المسبق مخفي جزئيا:

مسبقا المقطع التالي يحتوي على زر إظهار للتوسع، وسعت فوق إخفاء لإخفاء، كما هو مبين أدناه:


مضمنة (مضمنة) عرض

الاتصال البطاقة هي أعلى المفاتيح الخارجية، لذلك ليس هناك علاقة مرجع خارجي.

في عرض الصفحة الافتراضية، وهما فصل، غير قادر على تجسيد العلاقة التبعية. يمكننا استخدام شاشة عرض مضمنة، بحيث يتم عرض علامة تعلق على صفحة اتصل تحرير.

تعديل 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])

عرض على النحو التالي:


يعرض قائمة من الصفحة

أدخل الرقم في سجلات الاتصال، صفحة قائمة الاتصال تبدو مثل هذا:

يمكننا أيضا تخصيص عرض الصفحة، مثل عرض المزيد من الأعمدة في القائمة، مجرد إضافة list_display الملكية في ContactAdmin في:

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

تحديث العرض الصفحة كما يلي:

قدرات البحث عند إدارة عدد كبير من السجلات جدا، يمكننا استخدام شريط البحث لزيادة الصفحة search_fields عن القائمة:

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

في هذا المثال، ونحن نبحث عن اسم لw3cschool.cc (اسم نطاق الموقع)، وتظهر النتائج التالية:

أدوات جانغو إدارة الادارية وهناك العديد من الخصائص المفيدة، ويمكن للطلاب المهتمين بدراسة متعمقة في اليوم التالي.