جانغو، وكيفية توليد لوحة الادارة دون النماذج؟

StackOverflow https://stackoverflow.com/questions/1813637

سؤال

وأنا بناء مشروع كبير نوعا ما، التي تتكون أساسا من هذا:

أجهزة الخادم 1:   الخدمات القائمة على الجليد.   Glacier2 للتعامل مع الدورة.   السماح جدار حماية الوصول إلى Glacier2.

وخادم 2:   واجهة ويب (القراءة والجمهور) لخدمات الجليد عبر Glacier2.   واجهة الادارية للحصول على خدمات الجليد عبر الجليدية 2.

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

واجهة ويب لا الوصول إلى أية قاعدة بيانات. لأنه يربط خدمة الجليد على ملقم # 1 عن طريق جهاز التوجيه Glacier2 ويستخدم API كشفها بواسطة هذه الخدمات لمعالجة البيانات.

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

ولذا أنا بحاجة لتوليد لوحة الادارة، ولكن، بدلا من الاضطرار إلى الوصول إلى البيانات القياسية مثل ORM عادة لا، ولست بحاجة لاعتراض أي مكالمات "وصول ديسيبل" وتحويلها إلى خدمة المكالمات الجليد، ومن ثم اتخاذ الناتج الخدمة (إن وجدت)، وتحويل ذلك إلى كل ما ترجع ORM بشكل طبيعي وإعادة التحكم إلى جانغو.

وأي شخص يعرف كيف يمكن القيام بذلك؟ ما الذي أحتاج إلى فئة فرعية؟ أي أفكار محددة؟

وشكرا على وقتك.

هل كانت مفيدة؟

المحلول

وأعتقد أنه قد يكون هناك طريقة أسهل من كتابة ORMS مخصصة للحصول على التكامل المشرف تريد. اعتدت عليه في أحد التطبيقات التي تسمح للإدارة Webfaction حسابات البريد الإلكتروني عبر API لوحة تحكم بهم.

ونلقي نظرة على models.py، admin.py وurls.py هنا: django- webfaction

لتهيئة الدخول على صفحة الفهرس المشرف استخدام نموذج دمية التي تمكنت = خطأ

وسجل هذا النموذج مع المشرف.

ويمكنك بعد ذلك اعتراض عناوين المشرف وتوجيههم إلى جهات النظر الخاصة بك.

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

نصائح أخرى

والقوة الحقيقية للcontrib.admin هي جانغو أشكال . في جوهرها، وأداة المشرف هو في الأساس نموذج لمطابقة نموذج مع قليل من التوجيه urls.py القيت في توليد السيارات. في نهاية الأمر ربما يكون مجرد أسهل للاستخدام أشكال جانغو وبصرف النظر عن أداة الإدارة.

ويمكنك ان "وهمية" بعض الفئة بحيث تبدو وكأنها نموذج ولكنه وكيل لواجهات برمجة التطبيقات الخاصة بك

وf.e.

class QuerysetMock(object):
    def all():
        return call_to_your_api()
    [...]


class MetaMock(object):
     def fields():
         return fields_mock_objects..
     verbose_name = ''
     [...]

class ModelMock(object):
    _meta = MetaMock()
    objects = QuerysetMock()

admin.site.register(ModelMock)

وهذا قد يعمل .. ولكن عليك أن تفعل الأشياء متوافق الكثير django.model

ووجانغو مكتب إدارة السجلات لديها backent قابل للتوصيل، مما يعني أنه يمكنك كتابة الخلفية للأشياء التي لا RDBMSes. انها على الارجح مهمة كبيرة نوعا ما، ولكن مكان جيد للبدء هو مع الحديث مالكولم Tredinnick من DjangoCon 2008، <وأ href = "http://www.youtube.com/watch؟v=zlhyp5Ve2qk" يختلط = "نوفولو noreferrer" > داخل مكتب إدارة السجلات و.

وعلى خلاف ذلك، هل يمكن تجاوز ORM تماما، وإرسال الاستمارات يدويا عن وصول التي تحتاج إليها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top