Pourquoi est-ce que je reçois urls absolue dans Satchmo quand je télécharger des images de produits localement?

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

Question

Je fais un certain développement local en utilisant Django et Satchmo. Lorsque je télécharger des images de produits localement par l'administrateur, le chemin vers l'image apparaît comme un chemin absolu, avec lettre de lecteur, plutôt que le bon chemin relatif.

Stranger encore, Satchmo permet d'économiser l'image originale et les vignettes qu'elle génère dans les deux moi répertoire /media/ et le répertoire /media/images/, ce dernier étant où je veux les aller.

Les paramètres relavent sont les suivants:

# path relative to the settings.py file
DIRNAME = os.path.abspath(os.path.dirname(__file__).decode('utf-8'))

MEDIA_ROOT = os.path.join(DIRNAME, 'media')
MEDIA_URL = 'http://localhost:8000/'
ADMIN_MEDIA_PREFIX = '/media/'

J'ai tripple vérifié le fichier local_settings.py et il n'y a aucune mention du mot « médias » partout en elle, donc je suis sûr qu'il n'y a pas de réglage overrides.

Si cela peut aider, je suis sous Windows, mais je l'utilise toute la notation unix appropriée pour mes chemins.

Était-ce utile?

La solution 2

Transforme le problème est un problème avec les directions slash dans le fichier settings.py.

En général, je crée une fonction relative_path() dans mon fichier settings.py donc je peux facilement définir:

MEDIA_ROOT = absolute_path('media')

La version de Satchmo j'utilisais encouragé l'utilisation d'un DIRNAME réglage à la place:

DIRNAME = os.path.abspath(os.path.dirname(__file__).decode('utf-8')

La question a été, en utilisant cette technique, mon MEDIA_ROOT était défini comme tel:

MEDIA_ROOT = os.path.join(DIRNAME, 'media')

Mais cela utilisait les barres obliques inverses de Windows au lieu des barres obliques avant Unix. J'ai résoudre avec:

MEDIA_ROOT = os.path.join(DIRNAME, 'media').replace('\\', '/')

Autres conseils

Ceci est un bogue Windows uniquement. Je développe une application Satchmo sous Windows et il le fait, mais quand je déploie sur une boîte Linux, il fonctionne très bien. Je viens d'aller dans la base de données et modifier les chemins là quand je fais des tests sur ma boîte de Windows.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top