Inlines والحقول للقراءة فقط
حرّر الصفوف المرتبطة ضمنيًا واحمِ الحقول
Inlines والحقول للقراءة فقط درس مجاني في Django Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Django Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Django Academy 4 دروس في المجموع.
عدّل الصفوف المرتبطة معًا
تنتمي السجلات المرتبطة أحيانًا إلى الصفحة نفسها. يتيح لك inline تعديل الصفوف الفرعية داخل نموذج تعديل الصف الأب مباشرةً. 🧩
نمطا inline
يوفر Django تخطيطين. يعرض TabularInline الصفوف في جدول مضغوط، بينما يضع StackedInline كل صف في كتلة مستقلة.
عرّف inline
أنشئ فئة صغيرة ترث من TabularInline، واجعل سمة model فيها تشير إلى النموذج الفرعي الذي تريد تضمينه.
class CommentInline(admin.TabularInline):
model = Commentأرفقه بالصف الأب
أدرج inline في لوحة إدارة الصف الأب. يخبر الخيار inlines Django بعرض تلك الصفوف الفرعية داخل نموذج الصف الأب.
class PostAdmin(admin.ModelAdmin):
inlines = [CommentInline]صفوف فارغة إضافية
تعرض inlines صفوفًا فارغة لإضافة العناصر بسرعة. اضبط extra للتحكم في عدد الخانات الفارغة الظاهرة؛ وغالبًا تكفي خانة واحدة.
extra = 1متطلب FK
لا تعمل inlines إلا عندما يحتوي النموذج الفرعي على ForeignKey يشير إلى الصف الأب. ومن خلال هذا الارتباط يعرف Django الصفوف التي تنتمي إلى بعضها.
احمِ حقلًا
ينبغي أن تكون بعض القيم مرئية، لكن لا ينبغي تعديلها يدويًا. أضفها إلى readonly_fields، وستعرضها لوحة الإدارة مقفلة. 🔒
readonly_fields = ("created", "updated")الطوابع الزمنية التلقائية
تضبط Django الحقول مثل تاريخ auto_now_add، وليس المستخدمون. ويساعد جعلها readonly على تجنب التعديلات المربكة التي لا يمكن حفظها.
اعرض قيمة محسوبة
يمكن لـ readonly_fields تسمية طريقة أيضًا، ما يتيح لك عرض قيمة محسوبة لا تحتوي على عمود فعلي في قاعدة البيانات.
def word_count(self, obj):
return len(obj.body.split())readonly داخل inlines
تقبل inlines أيضًا readonly_fields. استخدمها لعرض بيانات الصفوف الفرعية بوضوح مع إبقاء الأعمدة الحساسة غير قابلة للتعديل.
تظل الصلاحيات سارية
يتعلق readonly بالنموذج، لا بالأمان. إذ يتحكم أذونات المستخدم في الوصول الفعلي، لذا اجمع بين الأمرين لتحرير آمن.
تحقق سريع
ما المطلوب لكي يظهر نموذج باعتباره inline؟
مراجعة
ضمّنت الصفوف المرتبطة باستخدام inlines، وقفلت القيم الحساسة باستخدام readonly_fields. ويجعل الجمع بينهما تعديل البيانات في لوحة الإدارة غنيًا وآمنًا. ✅
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «Inlines والحقول للقراءة فقط» مجاني؟
نعم — نص درس «Inlines والحقول للقراءة فقط» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.
ماذا ستتعلم في «Inlines والحقول للقراءة فقط»؟
حرّر الصفوف المرتبطة ضمنيًا واحمِ الحقول تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟
لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «Inlines والحقول للقراءة فقط»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟
نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- createsuperuser وتسجيل الدخول
- تسجيل النماذج باستخدام admin.site
- تخصيص ModelAdmin
- Inlines والحقول للقراءة فقط