سؤال

أقوم بتشغيل إصدار تطوير Django ويبدو أن تطبيق FileBrowser غير متوافق مع الجذع بسبب التغييرات التي تم إجراؤها على CSRF. كيف يمكنني خفض الإصدار الرسمي (1.1)؟

أنا أعمل على مضيف مشترك والطريقة التي أقوم بها بشدة جانجو هي كما يلي:

~/local/lib/python2.6/site-packages/ يحتوي على /django/ وكذلك العديد من المجلدات الأخرى (واحد لكل تطبيق).

~/local/lib/python2.6/site-packages/ هو على طريق بيثون.

داخل /site-packages/ هناك أيضا symlink ل /projectname/ يحتوي ذلك على ملفات المشروع (Project.py، Settings.py، إلخ).

أنا أستخدم fastcgi وبالتالي في /public_html/ انا املك dispatch.fcgi يستخدم للاتصال django.core.servers.fastcgi.runfastcgi. وبعد أ .htaccess يستخدم الملف لإعادة توجيه جميع الطلبات إلى Respactatch.fcgi بحيث يمكن django التعامل معها.

حاولت إزالة (الخروج من مسار الثعبان) /django/ ثم قم بتنزيل إصدار إصدار Django ووضعه حيث /django/ مجلد كان. أنتج هذا الخطأ التالي:

لا وحدة اسمها CSRF.

لقد قمت بتنزيلها middleware/csrf.py من /trunk/ الذي مسح الخطأ الأول ولكن ثم أنتجت أخطاء أخرى.

كيف يجب أن أذهب إلى التوفيق إلى 1.1؟ بدءا من الصفر ليس غير وارد ولكن من الواضح أنني أفضل تجنب هذا إن أمكن.

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

المحلول 2

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

ال startproject يقوم أمر Django-admin.py في 1.1.1 بإنشاء ملفات إعدادات مختلفة قليلا عن إصدار التطوير الحالي.

startproject في مع إصدار DEV الحالي لديه فئة متوسطة إضافية - CSRF. يقوم الأمر StartProject في 1.1.1 بإنشاء نفس الإعدادات. إزالتها من الدرجة الثالثة. التعليق أو إزالة هذا الخط يحصل على django يعمل بشكل صحيح.

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware', #additional middleware class
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)

نصائح أخرى

انظر في الخاص بك /site-packages/ دليل ل Django-1.other_stuff.egg-info الملفات وحذف أي تجد، ثم حاول مرة أخرى (مع رمز 1.1 لا يزال في site-packages/django/ الدليل. إذا لم ينجح ذلك، فقط أعد تشغيل مثبت Django من أحدث إصدار Tarball (تثبيت Python Setup.py) ويجب أن تكون جيدا.

بدلا من ذلك، إذا كان لديك نقطة تثبيت ربما يمكنك فقط القيام به pip install -U Django==1.1.1 في المحطة.

لاحظ العاصمة D في Django في تلك الملفات معلومات البيض والقيادة PIP.

يمكنك فقط تثبيت Django من الإصدار الذي تريده في مساحة المستخدم، كما يقول في / الصفحة الرئيسية / ME / LIB /

ثم إذا كنت تستخدم mod_wsgi في mysite.wsgi لديك خط:

sys.path.insert(0,'/home/me/lib/Django-1.1')

هذا سوف يؤمن أن django يتم تحميله من التثبيت، وليس على مستوى الخادم.

ستحتاج أيضا إلى ضبط متغير مسار البيئة Shell الخاص بك بحيث يتم تشغيل DJango-admin.py الصحيح أو تشغيله مباشرة

python /home/me/lib/Django-1.1/django/bin/django-admin.py ...
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top