Zaktualizowałem do nowej wersji Django 1.8 i zacząłem używać Jinja2, ponieważ powiedział, że jest teraz obsługiwane, a Jinja2 ma kilka funkcji, których mógłbym użyć w moim projekcie.Django 1.8 z Jinja2: Contrib app Administrator nie działa
Po zakończeniu dostosowywania szablonów do mojej aplikacji do wersji Jinja2 i skorzystaniu z nowych dostępnych funkcji, odkryłem, że aplikacja Admin contrib już nie działa.
"TemplateDoesNotExist w/admin/login /"
Tak więc okazuje się, że aplikacja contrib Admin dopiero wykonane szablony dla DjangoTemplates a nie dla Jinja2. Najpierw zrobiłem naiwną rzecz i utworzyłem dowiązanie symboliczne w [...]/site-packages/django/contrib/admin
od templates
do jinja2
, ale szablony używały szczegółów DjangoTemplates, więc Jinja2 ich nie akceptuje. Usunąłem dowiązanie symboliczne.
Sposób, w jaki zostały przełączone do Jinja2 jest poprzez następującą zmianę w moim projekcie settings.py
:
TEMPLATES = [
{
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'BACKEND': 'django.template.backends.jinja2.Jinja2',
'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',
- ],
- },
},
]
Czy ktoś wie albo:
- Jak niech contrib aplikacja Admin zachować używanie DjangoTemplates przy jednoczesnym zezwoleniu mojej aplikacji na użycie aplikacji Jinja2 lub
- Jeśli istnieje inna aplikacja administracyjna równie dobra, jak domyślna, która obsługuje Jinja2, lub
- Jeśli jest coś jeszcze, co przeoczyłem, lub powinienem być tego świadomy?
Dziękuję za poświęcony czas :)
Podążyłem za twoją sugestią i działało ładnie. Rzeczą, którą zrobiłem inaczej było umieszczenie Jinja2 przed DjangoTemplates zamiast po, ponieważ w normalnej operacji, jest to silnik szablonu, który będzie najczęściej poprawny, a także zamiast dostarczać DIRS, jak w twoim przykładzie, zostawiłem je na swoich domyślnych (puste listy) i zawiera kilka innych ustawień domyślnych. –