-
المساهمات
156 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
أجوبة بواسطة Haroun Taha
-
-
في ملف ال admin.py الخاص بال app
قم بتعريف class مورث بخصائص ال admin
ومن ثم سنقوم بعمل اعادة تعريف للدالة المسؤولة عن زر الحذف اسم الدالة has_delete_permission
نكتب داخلها ان ترجع قيمة false
من ثم إعطاء هذا ال class لدالة الadmin.site.registerمثال توضيحي داخل ملف admin.py:
from django.contrib import admin class DisableDeleteButtonAdmin(admin.ModelAdmin): def has_delete_permission(self, request, obj=None): # Disable delete return False admin.site.register(YourModel, DisableDeleteButtonAdmin)
وهكذا اضمن لك انه تم الغاء تفعيل زر الحذف وتمت الاجابة على سؤالك
اقتباسأريد إزالة زر الحذف Delete Button الموجود في لوحة Admin في مشروع جانغو Django خاص بي، هل توجد طريقة لفعل ذلك؟
مثال بصري للنتيجة ..
قبل اضافة الكود :
ارجو ان تكون قد فهمت الطريقة تحياتي .
- 1
-
اهلاً،
في دالة ال view التي تقوم بتسجيل مستخدم جديد بعد التأكد من إضافة المستخدم بالبيانات المدخلة من ال form تذكر انه بعد عملية تسجيل المستخدم واضافة البيانات أضف هذا الكود:
from django.contrib.auth import authenticate auth_user = authenticate(username=request. POST['username'], password=request. POST['password'])
بعد عملية تسجيل مستخدم جديد فإن دالة authenticate داخل ال Django تعطي لها اسم المستخدم وكلمة المرور وهي تقوم بفحص اذا كان المستخدم موجود داخل النظام ام لا فترجع لنا object of user تم حفظه في حالتنا داخل المتغير auth_user.
ومن ثم نفحص هل المستخدم موجود إذا كان موجود صرح له بتسجيل دخول للنظام باستخدام دالة login ومن ثم انقله لصفحة ال home او اي صفحة تريدها بوضع URL الصفحة مباشرة باستخدام دالة redirect دون جهد منه لقد أصبح مستخدم في النظام ومسجل دخوله لنرى ذلك في الكود لنضيف هذا الكود على الكود السابق:
from django.contrib.auth import authenticate from django.contrib.auth import login from django.shortcuts import redirect auth_user = authenticate(username=request. POST['username'], password=request. POST['password']) If auth_user: login(request, auth_user) return redirect('/url/home/')
الذي تم توضيحه اعلاه تمت عملية تسجيل الدخول من داخل دالة تسجيل مستخدم جديد دون ان يطر للذهاب لصفحة تسجيل الدخول ولقد تم تحويله مباشرة للصفحة الرئيسية بإستخدام دالة redirect وهذا اجابة لسؤالك
اقتباسهل توجد طريقة تجعل المستخدم يسجل دخول تلقائيًا في الموقع بعد إتمام عملية التسجيل مباشرة بدون أن يتضطر المستخدم من كتابة بياناته مرة أخرى؟
اتمنى ان تكون قد وضحت لك الطريقة تحياتي .
- 1
كيفية إضافة حقل field إلى نموذج form ديناميكيًا في جانغو Django؟
في تطوير الواجهات الأمامية
نشر · تم التعديل في بواسطة Haroun Taha
إذا كنت تقصد ال Forms الخاصة بال Models في ال Admin الخاصة بالجانغو يمكننا عمل ذلك بواسطة إنشاء model في models.py سنسميه في حالتنا class ExtraField
ونعرف بداخله الحقل الذي تريد إضافته عند الضغط على add new field
ونربطه بعلاقة Foreign Key مع ال model المرتبط بال Form سنسميه في حالتنا Post
هكذا سيكون الكود داخل ال models.py :
ملاحظة : لا تنسى عمل makemigrations and migrate
من ثم في ملف الadmin.py عند تسجيل ال model المرتبط بالForm
نقوم بتعريف class ExtraFieldTabularInline :
من ثم نقوم بتعريف class ال PostAdmin
بإضافة انه سيقبل Inlines اذن سنضيف ايضاً class PostAdmin :
من ثم تسجيل form الpost في لوحة التحكم :
هكذا أصبح لديك اضافة حقول كما تريد ولقد تم انشاء الزر دون تحديث الصفحة وهذا إجابة لسؤالك اذا كنت تقصد الforms داخل لوحة التحكم الخاصة بالدجانغو
استخدمت في المثال الجدول الmodel المرتبط بال form اسميته Post لتوضيح الفكرة ولكن لك ان تطبق الفكرة على اي جدول او model حسب ما اسميته.
كانت إجابتي بخصوص الforms داخل لوحة التحكم في دجانقو لم اتطرق الى الforms الخاص بالعرض في التمبلت تحياتي .
مثال بصري الى النتيجة :