У меня настроены папки так:
~/projects/myproject/
~/.envs/myproject/
Папки моего приложения выглядят так:
myapp/
├── __init__.py
├── admin.py
├── forms.py
├── migrations/
├── models.py
├── tests/
├── templates/
├── urls.py
├── views.py
Я только что реализовал собственный вид сброса пароля, потому что хотел использовать свои собственные шаблоны. Проблема в том, что вид сброса пароля не находит мой шаблон. Вот мой взгляд:
class CustomPasswordResetConfirmView(views.PasswordResetConfirmView):
success_url = reverse_lazy("accounts:password_reset_complete")
template_name = "accounts/registration/password_reset_confirm.html"
И вот сообщение об ошибке, которое я получаю:
TemplateDoesNotExist at /auth/reset/MQ/set-password/
accounts/registration/password_reset_confirm.html.
Request Method: GET
Request URL: http://localhost:8000/auth/reset/MQ/set-password/
Django Version: 1.11.13
Exception Type: TemplateDoesNotExist
Exception Value:
accounts/registration/password_reset_confirm.html.
Exception Location: /Users/jan/.envs/myproject/lib/python3.6/site-packages/django/template/loader.py in select_template, line 53
Python Executable: /Users/jan/.envs/myproject/bin/python
Python Version: 3.6.5
Python Path:
['/Users/jan/Dev/Misc Tutorial/myproject',
'/Users/jan/.envs/myproject/lib/python36.zip',
'/Users/jan/.envs/myproject/lib/python3.6',
'/Users/jan/.envs/myproject/lib/python3.6/lib-dynload',
'/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6',
'/Users/jan/.envs/myproject/lib/python3.6/site-packages']
Как я могу заставить Django найти мои пользовательские шаблоны? Из ошибки могу сказать, что он смотрит в моих виртуальных средах.
Я попытался указать путь к шаблонам следующим образом:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
[os.path.join(BASE_DIR, 'templates')]
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Код для этого я получил из документации Django. К сожалению, это не помогает. Если у вас есть идеи, как я могу это исправить, я был бы очень благодарен!
(Кстати, я также пытался использовать django-admin вместо manage.py, потому что это рекомендуется официальной документацией. Но я не смог установить переменную env DJANGO_SETTINGS_MODULE, чтобы она работала. Возможно, эта проблема связана.)
РЕДАКТИРОВАТЬ: приложение для вещей, связанных с учетной записью, называется учетными записями. В нем есть папка с названием «шаблоны», содержащая различные другие папки, одна из которых называется «регистрация».
.
в конце имени вашего шаблона. Но ваш вопрос не ясен; где шаблон, который вы пытаетесь использовать? Единственное приложение, которое вы показываете, называется myapp; у вас есть отдельное приложение учетных записей? Есть ли у него каталог шаблонов/регистрации? - person Daniel Roseman   schedule 11.05.2018