Domanda

Sono in esecuzione la versione di sviluppo di Django e sembra che l'applicazione filebrowser non è compatibile con il tronco a causa delle modifiche apportate al CSRF. Come faccio a eseguire il downgrade alla versione ufficiale (1.1)?

Sto lavorando su un host condiviso e il modo in cui sto facendo funzionare curently Django è la seguente:

~/local/lib/python2.6/site-packages/ contiene /django/ così come diverse altre cartelle (una per ogni app).

~/local/lib/python2.6/site-packages/ è sulla strada pitone.

All'interno /site-packages/ c'è anche un link simbolico a /projectname/ che contiene i file di progetto (manage.py, settings.py, ecc.).

Sto usando FastCGI e quindi in /public_html/ Ho un dispatch.fcgi che viene utilizzato per chiamare django.core.servers.fastcgi.runfastcgi. Un file .htaccess viene utilizzato per reindirizzare tutte le richieste a dispatch.fcgi in modo che Django in grado di gestirli.

Ho provato a rimuovere (trasferirsi al di fuori del percorso di pitone) /django/ e poi scaricando la versione di Django e metterlo in cui la cartella /django/ precedente era. Ciò ha prodotto il seguente errore:

  

Nessun modulo chiamato CSRF.

Ho scaricato middleware/csrf.py da /trunk/ che chiarito il primo errore, ma poi prodotto altri errori.

Come devo fare per il downgrade a 1,1? A partire da zero non è fuori questione, ma mi piacerebbe, ovviamente, piuttosto evitare questo, se possibile.

È stato utile?

Soluzione 2

Sono riuscito a downgrade con successo e in realtà è un processo estremamente semplice. Speriamo che questo aiuterà le persone fuori che trascurare quello che ho fatto.

Il comando startproject di django-admin.py in 1.1.1 crea un file settings.py leggermente diverso rispetto alla versione di sviluppo attuale.

startproject in con il rilascio dev corrente ha una classe di middleware aggiuntivo - CSRF. Il comando startproject nella 1.1.1 crea lo stesso settings.py ma con la terza classe rimosso. Commentando fuori o rimozione di questa linea diventa Django funziona correttamente.

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

Altri suggerimenti

Cercare nella directory per i file /site-packages/ Django-1.other_stuff.egg-info e cancellazione delle trovate, quindi provare di nuovo (con il codice per il 1.1 ancora nella directory site-packages/django/. Se questo non funziona, appena ri-eseguire il programma di installazione Django dalla ultima release tarball (installare python setup.py) e si dovrebbe essere buono.

In alternativa, se avete pip installato probabilmente si può fare solo pip install -U Django==1.1.1 nel terminale.

Si noti la D capitale Django in quei file uovo-info e il comando pip.

si può semplicemente installare Django della versione che si desidera in voi spazio utente, dice in / home / me / lib /

allora se si utilizza mod_wsgi in mysite.wsgi avere una linea:

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

Questo assicurerà che Django è caricato dall'installazione, non il server a livello.

avrete anche bisogno di regolare la variabile PATH ambiente di shell in modo che corretto django-admin.py è lanciato o semplicemente eseguire direttamente

python /home/me/lib/Django-1.1/django/bin/django-admin.py ...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top