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)
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. –
@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