Django: مسؤول مع مواقع ولغات متعددة
-
02-10-2019 - |
سؤال
من المفترض أن أقوم ببناء بعض تطبيقات Django ، والتي تسمح لك بإدارة مواقع متعددة من خلال الواجهة الخلفية. ال contrib.sites
الإطار مثالي تمامًا لأغراضي. يمكنني تشغيل مثيلات متعددة manage.py
مع إعدادات مختلفة لكل موقع ؛ ولكن كيف ينبغي أن يتعامل مسؤول Django مع إعدادات مختلفة لمواقع مختلفة ، على سبيل المثال. إذا كانت لديهم مجموعات مختلفة من اللغات ، لغة مختلفة (افتراضية)؟ لذلك هناك بعض المشكلات التي يجب مواجهتها إذا كان عليك العمل على كائنات قادمة من مواقع مختلفة في مسؤول واحد ...
أظن settings.ADMIN_FOR
من المفترض أن يكون مفيدًا تمامًا لحالات كهذه ، ولكن بالكاد لا يوجد أي وثائق حول هذا الموضوع وأعتقد أنه لا يستخدم حقًا في إصدار Django الفعلي (؟).
لذلك أي أفكار/حلول موضع ترحيب وتقدير كبير! شكرًا جزيلاً...
المحلول
هناك قديم منشور المدونة من قبل جيمس بينيت والتي قد تكون مفيدة:
- قم بإنشاء كائن موقع جديد في المسؤول الخاص بك لكل مجال ، ووضع معرف هذا الموقع في ملف الإعدادات الخاص به كـ site_id حتى يعرف Django أي موقع في قاعدة البيانات يتوافق مع ملف الإعدادات هذا.
- في ملف الإعدادات لموقعك الأصلي (الموقع الذي يحتوي على المعرف 1) ، أضف ملفات إعدادات المواقع الأخرى إلى إعداد admin_for ، لإعلام Django أن هذه الحالة الواحدة من تطبيق المسؤول سوف تتعامل مع جميع المواقع.
كما هو موثق admin_for (الذي لا يمكنني نشره من أجل الرابط) يجب أن يكون بمثابة وحدات الإعدادات مثل instaled_apps هو tuple من وحدات تطبيق Django.
لاحظ أن منشور المدونة هو من عام 2006 ، لذا فهو يستخدم واجهة برمجة تطبيقات قديمة.