لوحة تحكم بموقع جانغو

تعتبر واجهة مدير المواقع او لوحة التحكم جزء اساسي من البنية التحتية لفئة واسعة من المواقع الإلكترونية وتعتبر هذه الواجهة أي (لوحة التحكم) واجهة محدودة الوصول وهي تقتصر على مسؤول الموقع فقط أو أشخاص موثوق بهم مصرح لهم بالوصول ويمكن القيام بالكثير من الأمور على واجهة التحكم مثل إضافة،تعديل،حذف محتويات الموقع ومن أهم وأشهر الأمثلة يمكننا  كتابة ونشر مواضبيع جديدة على مدونتك.
ولكن هناك مشكلة مع واجهة المدراء وهي الشعور بالملل عند العمل على إنشاءها ، فنحن نحب تطوير الويب عندما يتعلق الامر بواجهة الموقع الخاصة بالزوار حيث يمكن إضافة أو حذف أمور وكل على حسب إبداعه ولكن عندما يتعلق اﻷمر بواجهة التحكم فالأمر واضح وهو لا يتغير من موقع الى أخر فكل ماعليك هو العمل على مصادقة المستخدمين ،عرض النماذج ، التحقق من صحة المدخلات وهلم جرا أليست عملية مملة ومكررة ؟

إذا ماهو جديد جانغو حول هذه العمليات المتكررة المملة ؟ جانغو يقوم بكل هذه العملية مع بضع سطور برمجية لتكون واجهة التحكم جاهزة للعمل .

اليوم سنتكلم عن واجهة المدير التلقائية الخاصة بجانغو وتعمل هذه الميزة من خلال قراءة البيانات الوصفية الموجودة في نموذجنا لتوفير واجهة قوية و جاهزة للإنتاج من قبل مسؤولي الموقع وسنتعلم كيفية تفعيلها وتخصيصها بما يناسبنا .

أرجوا أن تطالع على المواضيع السابقة عن جانغو :3،2،1، 4

حزمة django.contrib

لوحة التحكم التلقائية الخاصة بجانغو هي جزء من مجموعة كبيرة من وظائف جانغو والمسماة django.contrib وهو جزء من الكود المصدري الكامل لجانغو والذي يحتوي على إضافات مفيدة، ولفهم django.contrib بشكل جيد يمكنك تشبيهه بالمكتبات الإفتراضية التي تاتي  مع بايثون عند أول تثبيت .

وتعتبر واجهة المدير اول جزء من django.contrib وتقنيا تسمى django.contib.admin ومن المميزات الاخرى لهذه الحزمة نظام توثيق المستخدم django.contrib.auth ، دعم للجلسات المجهولة django.contrib.sessions ،دعم لتعليقات المسنخدمين django.contrib.comments كما ستتعرف على المزيد من مميزات هذه الحزمة كلما تعمقت في جانغو

لكي نقوم بإضافة وتعديل أو حذف المواضيع التي قمنا بإنشاء نماذجها من قبل علينا بإستخدام لوحة التحكم الخاصة بجانغو django admin .

ومن دون إطالة سنقوم بفتح ملف blog/admin.py ونقوم بحذف جميع محتوياته وإستبدالها بالكود التالي :

from django.contrib import admin
from .models import Post

admin.site.register(Post)

وكما لاحظتم قمنا بإستدعاء نموذج المواضيع الخاصة بالمدونة الذي قمنا بإنشاء في المرة السابقة وحتى نجعل من النموذج ظاهر على لوحة التحكم علينا بتسجيل النموذج من خلال السطر التالي :

admin.site.register(Post)

إستعمال لوحة التحكم

الأن يمكننا مشاهدة نموذجنا وطبعا بعد تشغيل السيرفر المحلي من خلال السطر

python manage.py  runserver

ثم كتابة العنوان http://127.0.0.1:8000/admin على المتصفح وستكون النتيجة صفحة تسجيل الدخول  :

صفحة الدخول الى لوحة تخكم جانغو

صفحة الدخول الى لوحة تحكم جانغو

لتسجيل الدخول نحن بحاجة الى إنشاء مستخدم ذات صلاحيات كاملة (مدير الموقع) نعود الى سطر الأوامر ونكتب السطر التالي :

 python manage.py createsuperuser 

ثم بكتابة إسم المستخدم بحروف أجنبية وبدون مسافات او حروف كبيرة وعنوان البريد الإلكتروني وكلمة المرور .

(myvenv) ~/pyarab$ python manage.py createsuperuser
Username: kader
Email address: admin@kader.com
Password:
Password (أعد كتابة كلمة المرور ):
Superuser created successfully.

عد مرة اخرى الى المتصفح وقم بتسجيل الدخول بالمعلومات التي قمت بإختيارها لتظهر لك لوحة تحكم جانغو وهي تحتوي على التطبيق مدونة مع نموذج المواصيع الذي قمنا بإنشاءه أما غير ذلك فلا يوجد إلا نموذج المجموعات والمستخدمين وهما عبارة عن نماذج إفتراضية للوحة التحكم وكل نموذج لديه خيارين و هما الإضافة أو التعديل .
كما يوجد خاصية أخر الإجراءات التي تمت على لوحة التحكم .

لوحة تحكم جانغو

بعد ذلك توجه الى المواضيع وقم بالتجريب عليه ، قم بإضافة 6 أو 5 مواضيع وقم بتعيين تاريخ للنشر لموضوعين أو ثلاثة وليس كلهم لأننا سنعمل عليهم فيما بعد .

حسنا بعدما أضفنا مجموعة من المواضيع وتجولنا قليلا في لوحة التحكم دعونا نتكلم عن أشياء اخرى .

ربما قد لاحظتم انه عند إضافة المواضيع وفي حالة نسيان حقل ما مثل عدم كتابة إسم الكاتب أو عنوان الموضوع  ظهور رسالة خطأ :

ملئ الحقول أمر إجباري

ملئ الحقول أمر إجباري

من خلال الصورة السابقة نستخلص أن ملئ الحقول امر إلزامي ولا يمكن نشر الموضوع من دون حقول الفارغة .

ولكن في حالة إذا أردت أن تكون تلك الحقول إختيارية أي يمكن نشر الموضوع من دونها فما علينا إلا القيام ببعض التعديلات ، دعونا نجعل من عنوان  الموضوع حقل إختياري .

ملاحظة: هناك بعض الحقول لا تقبل أن تكون فارغة حتى و لو قمنا بالتعديلات اللازمة وستظهر لك رسالة خطأ.

قم بفتح ملف blog/models.py وعدل السطر الخاص بعنوان المواضيع بإضافة blank=True في أخر السطر


title=models.CharField(max_length=200,blank=True)

وهنا نكون قد أخبرنا جانغو أنه حتى في حالة عدم كتابة عنوان الموضوع يمكنه حفظ أو نشر الموضوع لانه إفتراضيا جميع الحقول عبارة عن blank=False.

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

 

أرجوا أن تقوم بدعمنا عبر نشرك والاعجاب بالموقع

5 من التعليقات على موضوع “لوحة تحكم بموقع جانغو

  1. kholoud في 21 أكتوبر، 2015 at 10:02 ص قال:

    جزاكم الله خير .. شرح جميل وواضح

    عند كتابة بوست والضغط على احفظ يظهر هذا الخطأ !

    
    UnicodeEncodeError at /admin/blog/post/add/
    'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
    

    ما الحل ؟

  2. أخي بارك الله فيك شرحك بسيط ومفهوم ولكنه غير مسترسل فأنت تغيب كثيرا ثم تشرح القليل يمكنك أن تجمع الشروح كلها وتنشرها جملة واحدة تقبل نقدي وجزاك الله خير
    مثلا هنا يشرحه في 30 دقيقة
    https://www.youtube.com/watch?v=srHZoj3ASmk

    • معروف عبد القادر في 9 نوفمبر، 2015 at 5:47 م قال:

      أفهم إنزعاجك أخي الكريم وانا أتقبله بكل سرور وأنا أعلم أنني نادرا ما أدون ولكن صدقني يا أخي فأنا صاحب أشغال كبيرة ولا أملك الكثير من الوقت للتدوين إلا في أيام نهاية الأسبوع والذي أكون فيه أحيان مشغول ولكنني أعدك أن اتدارك الوضع في أقرب الأجال … سلام .

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Post Navigation