2009-11-11 14 views
6

पर डाउनग्रेड कैसे करें मैं डीजेगो के विकास संस्करण चला रहा हूं और ऐसा लगता है कि फ़ाइलब्रोसर ऐप सीएसआरएफ में किए गए परिवर्तनों के कारण ट्रंक के साथ संगत नहीं है। मैं आधिकारिक रिलीज (1.1) में डाउनग्रेड कैसे करूं?डीजे से डीजी को 1.1

मैं एक साझा मेजबान और जिस तरह से है कि मैं curently Django चला रहा हूँ पर काम कर रहा हूँ इस प्रकार है:

~/local/lib/python2.6/site-packages//django/ के साथ ही कई अन्य फ़ोल्डर (प्रत्येक अनुप्रयोग के लिए एक) शामिल हैं।

~/local/lib/python2.6/site-packages/ पाइथन पथ पर है।

/site-packages/ के भीतर /projectname/ में एक सिम्लिंक भी है जिसमें प्रोजेक्ट फ़ाइलें (manage.py, settings.py, आदि) शामिल हैं।

मैं फास्टसीजीआई का उपयोग कर रहा हूं और इसलिए /public_html/ में मेरे पास dispatch.fcgi है जिसका उपयोग django.core.servers.fastcgi.runfastcgi पर कॉल करने के लिए किया जाता है। .htaccess फ़ाइल का उपयोग सभी अनुरोधों को dispatch.fcgi पर रीडायरेक्ट करने के लिए किया जाता है ताकि Django उन्हें संभाल सके।

मैंने /django/ को हटाने (और फिर से Django के रिलीज़ संस्करण को डाउनलोड करने और इसे पिछले /django/ फ़ोल्डर को हटाने के लिए हटाने की कोशिश की। यह निम्न त्रुटि का उत्पादन:

No module named CSRF.

मैं /trunk/ से middleware/csrf.py जो पहले त्रुटि को मंजूरी दे दी है, लेकिन फिर अन्य त्रुटियों का उत्पादन डाउनलोड किया।

मुझे 1.1 तक डाउनग्रेड करने के बारे में कैसे जाना चाहिए? स्क्रैच से शुरू करना सवाल से बाहर नहीं है लेकिन अगर मैं संभव हो तो मैं इससे बचूंगा। Django-1.other_stuff.egg-info फ़ाइलों के लिए आपके /site-packages/ निर्देशिका में

उत्तर

1

मैंने सफलतापूर्वक डाउनग्रेड करने में कामयाब रहा है और यह वास्तव में एक बेहद आसान प्रक्रिया है। उम्मीद है कि यह लोगों की मदद करेगा जो मैंने जो किया है उसे अनदेखा करते हैं।

startproject 1.1.1 में django-admin.py की कमांड वर्तमान विकास रिलीज की तुलना में थोड़ा अलग सेटिंग्स.py फ़ाइल बनाता है।

startproject वर्तमान देव रिलीज के साथ एक अतिरिक्त मिडलवेयर क्लास - सीएसआरएफ है। 1.1.1 में स्टार्टप्रोजेक्ट कमांड एक ही सेटिंग.py बनाता है लेकिन तीसरे वर्ग को हटा दिया जाता है। इस लाइन को टिप्पणी या निकालने से Django ठीक से काम कर जाता है।

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

देखो और हटा सकते हैं। किसी भी आप पाते हैं, उसके बाद फिर से (site-packages/django/ निर्देशिका में अभी भी 1.1 के लिए कोड के साथ प्रयास करते हैं तो यह काम नहीं करता, सिर्फ नवीनतम से Django इंस्टॉलर को फिर से चलाने के रिहाई टारबॉल उन अंडे की जानकारी में Django में (अजगर setup.py स्थापित) और आप अच्छा होना चाहिए।

वैकल्पिक रूप से, अगर आप pip installed है तो आप शायद सिर्फ टर्मिनल में pip install -U Django==1.1.1 कर सकते हैं।

नोट राजधानी D फाइलें और पीआईपी कमांड।

+0

अजगर का उपयोग करना setup.py स्थापित की आवश्यकता होगी मैं के रूप में दुर्भाग्य से सवाल से बाहर है/usr/के भीतर कुछ भी संपादित करने के पर्याप्त अधिकार नहीं हैं (मैं केवल संशोधित/घर/उपयोगकर्ता नाम/ –

+0

मैं जोड़ना भूल गया था: कोई भी .egg फ़ाइलें नहीं थीं। –

+0

क्या आपने Django के किस संस्करण को प्रोजेक्ट बनाया था? यदि आप ट्रंक के साथ प्रोजेक्ट बनाया है, 1.1 का उपयोग करके शुरू करें, यह मानते हुए कि आप बहुत दूर नहीं गए हैं। डिफ़ॉल्ट सेटिंग्स.py में बदलाव हैं (विशेष रूप से, उन नए सीएसआरएफ मिडलवेयर को लोड करना) जो डीजे के पुराने संस्करण के साथ काम नहीं करेंगे Ango। एक अलग नोट पर, आपको अपने होस्ट (http://pypi.python.org/pypi/virtualenv) के साथ वर्चुअलएन्व का उपयोग करने पर विचार करना चाहिए ताकि आपके पर्यावरण को अलग और बेहतर नियंत्रित किया जा सके। –

1

तुम सिर्फ संस्करण आप आप उपयोगकर्ता अंतरिक्ष में चाहते हैं के Django स्थापित कर सकते हैं, अगर आप अपने mysite में mod_wsgi उपयोग कर रहे हैं में/घर/मुझे/lib/

तो कहते हैं।wsgi की एक पंक्ति है:

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

यह बीमा करेगा कि django आपके इंस्टॉलेशन से लोड हो गया है, सर्वर-व्यापी नहीं।

आप भी इतना है कि सही django-admin.py शुरू की है अपने खोल वातावरण पथ चर समायोजित करने के लिए या बस सीधे चलाने

python /home/me/lib/Django-1.1/django/bin/django-admin.py ... 
+0

यह एक उत्कृष्ट "दोनों दुनिया के सर्वश्रेष्ठ" है, जो मुझे उन अनुप्रयोगों के लिए नवीनतम Django का उपयोग करने की इजाजत देता है जो इसे तोड़ने के बिना समर्थन करते हैं जिन्हें अभी तक अपडेट नहीं किया गया है। – Lake

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^