2016-10-19 2 views
1

Je suis en train de configurer mes fichiers de paramètres pour Django 1.10 selon les réglages de deux fichiers Scoops for Django 1.8.BASE_DIR renvoyant le chemin des paramètres et pas le chemin du projet (django 1.10)

mon fichier de paramètres BASE.PY est:

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 

le BASE_DIR renvoie le chemin suivant:

/Devs/projects/captain_log/src/cap_log 

mon arbre fichier:

|--Virtual Env Folder 
    |--src(django project)/ 
     |--cap_log(django config)/ 
      |--init.py 
      |--urls.py 
      |--wsgi.py 
      |--settings/ 
       |-- init.py 
       |-- base.py (all settings located here) 
       |-- development.py 
       |-- production.py 
       |-- etc. 

Je suis sous l'hypothèse que le BASE_DIR est censé renvoyer:

/Devs/projects/captain_log/src/ 

Je demande parce que mon STATIC_DIRS revient aussi:

/Devs/projects/captain_log/src/cap_log/static 

au lieu de:

/Devs/projects/captain_log/src/static 

Quelqu'un peut-il s'il vous plaît conseiller à une solution ou une correction à ce que je fais. Il est EFFECTUER aussi des chemins de modèle, collectstatic, Chemin des médias, etc.

Répondre

1

Essayez un plus dirname appel

BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 

La première dirname vous donne les paramètres, le second vous donne le dossier de configuration, le troisième sera mis vous dans le répertoire parent

__file__ # is the current file location 
os.path.abspath(__file__) # locates you on the file structure 
os.path.dirname(os.path.abspath(__file__)) # gives you the directory of the file at the supplied filepath 

l'hypothèse par défaut que vous utilisez est un fichier settings.py plutôt qu'un répertoire, de sorte que vous êtes un peu profond répertoire dans la configuration d'origine

+0

Merci. Ça a marché. Je ne sais pas pourquoi je n'y ai pas pensé. –