2017-07-24 1 views
0

Aus irgendeinem Grund bricht meine Wagtail Admin-Schnittstelle, wenn ich versuche und Jinja2 als meine Vorlage-Engine anstelle von Django Template Engine verwenden. Mein Frontend funktioniert gut, es findet meine Vorlagen in app/jinja2. Dies ist ein Django-Projekt mit Bachstelze hinzugefügt. HierAdmin bricht bei der Verwendung von Jinja2

ist der Fehler, den ich immer bin, wenn sie Zugang/admin versucht,

TemplateDoesNotExist at /admin/wagtailadmin/home.html 
Request Method: GET 
Request URL: http://127.0.0.1:8000/admin/ 
Django Version: 1.11 
Exception Type: TemplateDoesNotExist 
Exception Value: wagtailadmin/home.html 
Exception Location: /Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python3.6/site-packages/django/template/loader.py in get_template, line 25 
Python Executable: /Users/dbroadlick/Desktop/projects/codero2/virtualenv/bin/python 
Python Version: 3.6.1 
Python Path: ['/Users/dbroadlick/Desktop/projects/codero2', 
'/Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python36.zip', 
'/Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python3.6', 
'/Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python3.6/lib-dynload', 
'/Users/dbroadlick/Desktop/projects/codero2/virtualenv/lib/python3.6/site-packages'] 
Server time: Mon, 24 Jul 2017 21:40:59 +0000 

Hier ist, was meine Template-Konfiguration aussieht,

TEMPLATES = [ 
{ 
    'BACKEND': 'django.template.backends.jinja2.Jinja2', 
    'APP_DIRS': True, 
    'OPTIONS': { 
     'extensions': [ 
      'wagtail.wagtailcore.jinja2tags.core', 
      'wagtail.wagtailadmin.jinja2tags.userbar', 
      'wagtail.wagtailimages.jinja2tags.images', 
     ], 
     'context_processors': [ 
      'django.template.context_processors.debug', 
      'django.template.context_processors.request', 
      'django.contrib.auth.context_processors.auth', 
      'django.contrib.messages.context_processors.messages', 
     ], 
    }, 
}, 
] 

Er sagt auch, es zu benutzen versucht, Die jinja2-Engine, die es nicht sollte, weil Wagtail-Admin mit Django-Templates programmiert wird.

Antwort

2

Ihre TEMPLATES Einstellung hat Jinja2 als die einzige verfügbare Template-Engine konfiguriert, so gibt es nichts, was das ‚traditionelles‘ Django Template-Engine Verhalten auslösen, dass die Bachstelze admin on beruht (nämlich: innerhalb jeden /template Ordner des App für die gewünschte Vorlage suchen Pfad wagtailadmin/home.html). Daher wird die Vorlage nie gefunden. Sie müssen umfassen Konfigurationen für beide Jinja2 und DjangoTemplates in Ihrer TEMPLATES Einstellung - so etwas wie:

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [], 
     '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', 
      ], 
     }, 
    }, 
    { 
     'BACKEND': 'django.template.backends.jinja2.Jinja2', 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'extensions': [ 
       'wagtail.wagtailcore.jinja2tags.core', 
       'wagtail.wagtailadmin.jinja2tags.userbar', 
       'wagtail.wagtailimages.jinja2tags.images', 
      ], 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

Beachten Sie, dass Sie benötigen, um eine Konvention in Ort, um Django zu sagen, welche Vorlagen sollten mit welchem ​​Motor gemacht werden - mit die obige Konfiguration, glaube ich, dass das Setzen Ihrer Jinja2 Vorlagen innerhalb some_app/jinja2/ anstatt some_app/templates/ sollte darauf achten.

+0

Arbeitete wie ein Charme. Danke mein Herr. Dies sollte wahrscheinlich in der Wagtail-Dokumentation http://docs.wagtail.io/en/v1.9/advanced_topics/jinja2.html zur Kenntnis genommen werden. Es ist ziemlich abhängig von Django Wissen. –

Verwandte Themen