2016-10-29 2 views
0

Ceci est mon répertoire:Pourquoi django ne peut-il pas étendre le modèle au niveau du projet?

myproject/ 
├── frontpage 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── admin.py 
│   ├── admin.pyc 
│   ├── migrations 
│   │   ├── __init__.py 
│   │   └── __init__.pyc 
│   ├── models.py 
│   ├── models.pyc 
│   ├── templates 
│   │   └── intrafish 
│   │    └── index.html 
│   ├── tests.py 
│   ├── views.py 
│   └── views.pyc 
├── myproject 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── settings 
│   │   ├── __init__.py 
│   │   ├── __init__.pyc 
│   │   ├── base.py 
│   │   ├── base.pyc 
│   │   ├── development.py 
│   │   ├── development.pyc 
│   │   └── production.py 
│   ├── urls.py 
│   ├── urls.pyc 
│   ├── wsgi.py 
│   └── wsgi.pyc 
├── manage.py 
├── requirements.txt 
└── templates 
    └── base.html 

Je suis en train d'étendre base.html à l'intérieur index.html dans l'application frontpage. Mon base.html:

{% load i18n %} 
{% load url from future %} 
{% load staticfiles %} 


{% block header %} {% endblock %} 

Mon index.html:

{% extends "base.html" %} 

Mon wsgi.py:

import os 

from django.core.wsgi import get_wsgi_application 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "makemeacurry.settings") 

application = get_wsgi_application() 

Mon manage.py:

#!/usr/bin/env python 
import os 
import sys 

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "makemeacurry.settings") 

    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 

I certainement sentir que c'est parce que je ségrégé mes paramètres dans différents fichiers et donc cela se passe.

Mon modèle dans base.py que je Hériter development.py en utilisant from .base import * paramètres:

# List of callables that know how to import templates from various sources. 
TEMPLATE_LOADERS = [ 
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
] 


TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [ 
      join(BASE_DIR, 'templates'),  ], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'django.template.context_processors.i18n', 

      ], 
      'debug': True, 
     }, 
    }, 
] 

Comment pourrais-je faire ce travail?

Merci

---------- ## Edition 1 ##

C'est l'erreur:

TemplateDoesNotExist at/

base.html 

et voici ce modèle post-mortem ressemble à:

Template-loader post-mortem

Django a essayé de charger ces modèles, dans ce orde r:

Using loader django.template.loaders.filesystem.Loader: 
    /Users/myuser/projects/myproject/myproject/templates/base.html (File does not exist) 
Using loader django.template.loaders.app_directories.Loader: 
    /Users/myuser/.virtualenvs/myproject/lib/python2.7/site-packages/django/contrib/admin/templates/base.html (File does not exist) 
    /Users/myuser/.virtualenvs/myproject/lib/python2.7/site-packages/django/contrib/auth/templates/base.html (File does not exist) 
    /Users/myuser/projects/myproject/frontpage/templates/base.html (File does not exist) 
+1

Vous n'avez pas dit ce qui se passe, ni où sont ces "paramètres de modèle" et comment ils se rapportent aux autres fichiers de paramètres. –

+0

@DanielRoseman J'ai mis à jour ma réponse avec les modifications, ces paramètres de modèle sont en base.py et sur le développement.py Je fais juste de .base import * – Maverick

Répondre

1

Le problème est que vos fichiers de paramètres sont dans un sous-répertoire, donc BASE_DIR n'est calculé plus correctement; vous devez ajouter un autre niveau.

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

Merci beaucoup ... résolu ... mais avez-vous suggestion pour wsgi.py et manage.py configuration par défaut env config? – Maverick

+0

Non, parce que je ne sais pas ce que vous entendez par "réglage par défaut env config". –

+0

Je voulais dire que cette ligne os.environ.setdefault ("DJANGO_SETTINGS_MODULE", "makemeacurry.settings") est-ce exact? Il est à la fois dans wsgi.py et manage.py. Et je cours en utilisant gunicorn. – Maverick