7 votes

django override admin template

Je suis partie 2 du tutoriel Django . J'essaie de remplacer un modèle d'administration ( base_site.html )

J'ai copié le fichier depuis le django/contrib/admin/templates a mytemplates/admin/base_site.html

J'ai aussi mis à jour settings.py :

#Base Directory
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

#Template directories
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'mytemplates'),)

J'ai essayé de placer le dossier mytemplates dans la racine du dossier du projet ainsi que dans le dossier mysite, sans succès. Tout conseil serait le bienvenu !

13voto

YardenST Points 2282

MODIFICATION DE LA RÉPONSE DE L'UTILISATEUR PRÉCÉDENT - CELA FONCTIONNE :

Je pense que votre chemin relatif vers le répertoire des modèles est erroné.

Si vous suivez les étapes suivantes, cela devrait fonctionner : (je l'ai testé moi-même)

  1. Mettez le mytemplates dir côte à côte avec le manage.py fichier

    project
    -app1
    -app2
    -mytemplates
        -admin
            -base_site.html
    -manage.py
  2. Changez le TEMPLATE_DIRS en :

    TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'mytemplates'),)
  3. Assurez-vous que l'ordre du chargeur de modèles est :

    TEMPLATE_LOADERS = (
    
        'django.template.loaders.filesystem.Loader',
        'django.template.loaders.app_directories.Loader',
    
    )

1voto

Nimo Points 527

La réponse de @YardenST presque a fonctionné pour moi. Je suppose que c'est une question de configuration.

Au cas où vous auriez des problèmes, je vous suggère d'utiliser cette ligne :

TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'mytemplates'),)

Ensuite, mettez un point d'arrêt pour montrer le résultat réel, ou alternativement utilisez print TEMPLATE_DIRS .

C'est là que vous devez placer les modèles que vous voulez remplacer.

1voto

lgz Points 11

@kat-russo, thx ;)

J'ai essayé de configurer les modèles d'administration conformément à la documentation.

project_name
-app1
-app2
-project_name //main folder -> settings.py , urls.py, wsgi.py
-templates
-admin
  -project_name
     base.html

sans succès, mais

 -templates
   -admin
      base.html

fonctionne pour moi.

ma configuration (Django 1.10.4 w/Django CMS 3.4.1)

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.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',
            'sekizai.context_processors.sekizai',
            'cms.context_processors.cms_settings',
        ],

    },
},
]

0voto

erajuan Points 1107

Vous pouvez remplacer tous les modèles.

Créez un répertoire d'administration dans les modèles et ajoutez les fichiers.

Tous les dossiers.

https://github.com/django/django/tree/master/django/contrib/admin/templates/admin

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X