Как редактировать шаблоны django-allauth по умолчанию?
Я использую Django 1.10, и я хочу добавить приложение allauth для входа в систему, входа и т. д. На мой сайт. Я установил allauth из pip и попытался поместить шаблоны из репозитория allauth в папку "шаблоны" и вызвать их, но я не знаю, как это сделать.
6 ответов
правильный ответ можно найти здесь:https://stackoverflow.com/a/31282443/4992248
- создать
yourproject/templates/allauth/account/
и вставьте сюда все шаблоны, которые вам нужно отредактировать из/myproject/Lib/site-packages/allauth/templates/account
.
Если вам нужно внести изменения для socialaccount
шаблоны, создать также yourproject/templates/allauth/socialaccount/
- редактировать
'DIRS'
наsettings.py
как'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'templates', 'allauth')],
в конце он должен выглядеть как-то это:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'templates', 'allauth')],
'APP_DIRS': True,
'OPTIONS': {
'debug': False,
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.template.context_processors.media',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
- вы никогда не должны делать никаких изменений кода в
/Lib/site-packages/*
, потому что все изменения теряются после обновления пакета.
похоже, что документация модуля устарела. Для Django 1.10 вы должны сделать следующее:
- скачать модуль с pip
- добавьте в INSTALLED_APPS (/settings.py файл)
'django.contrib.sites', # first place
'allauth', # after your modules declarations
'allauth.account',
'allauth.socialaccount',
- добавить бэкэнды объявления и другой материал, необходимый allauth
AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend', ) SITE_ID = 1 ACCOUNT_EMAIL_REQUIRED = True ACCOUNT_USERNAME_REQUIRED = True
кажется, что для Django 1.10 не требуется для изменения раздела шаблонов (django-allauth==0.28.0). Вы можете проверить версии модулей с помощью команды" pip freeze".
создайте искусственный модуль для переопределения шаблонов; например, мой проект называется irj_app, и я добавил новое приложение под названием _shared, тогда у меня есть следующая структура и добавьте ее в INSTALLED_APPS перед объявлениями "allauth":
irj_app / _shared
- я создал каталог шаблонов внутри папки" _shared", и я добавил файл под названием " base.html", который переопределяет шаблон allauth. я обнаружил, что django-allauth создает шаблон, который переопределяет макет, который вы сделали раньше, затем вам нужно перехватить шаблоны django-allauth, чтобы изменить это поведение. Также можно переопределить любой шаблон этого механизма проверки подлинности. Например у меня есть:
irj_app / _shared / templates / base.html
irj_app / _shared / templates / account / base.html
irj_app / _shared / templates / account / signup.html
irj_app / _shared / templates / _shared / adminlte-template / ... (template for other modules)
надеюсь, что это помогает
Попробуйте Это:
создать счета каталог в шаблоне вашего приложения dir так, что он выглядит как ниже
yourppname/templates / account
файлы
yourppname / шаблоны / учетная запись / логин.HTML-код
yourppname / шаблоны / учетная запись / Регистрация.HTML-код
и добавьте ниже к вашему шаблону DIRS Не забудьте изменить yourappname на ваше приложение имя
os.путь.Регистрация (BASE_DIR, 'yourappname', 'templates')
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'yourappname', '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',
],
},
},
]
шаблоны Allauth можно переопределить так же, как и обычные методы переопределения шаблонов.
- установить шаблон каталога
TEMPLATE_DIRS = (
os.path.join(BASE_DIR,'templates'), os.path.join(BASE_DIR,'templates'))
ваш каталог шаблонов будет находиться в каталоге проекта. Зайдите в каталог шаблонов и
create a directory named allauth, inside allauth create a template directory and inside that create a directory accounts
создайте html-файлы с тем же именем, что и шаблоны allauth. См.репозиторий allauth github для получения дополнительной информации о шаблоне.
в django-allauth==0.36.0
- предположим, вы хотите настроить страницу входа в систему.
- не нужно менять настройки шаблонов
- просто создайте папку с именем account в папке шаблонов проектов, а затем:
- клонировать проект
git clone https://github.com/pennersr/django-allauth cd django-allauth/allauth/templates/account
- базовая копия.HTML и логин.html в созданную папку аккаунта
- Я пробовал, это работает.
Ну, я просто смог это сделать.
Я не знал, где были эти шаблоны, но я обнаружил, что в моем случае (я использую виртуальный env):
Envs/myproject/Lib/site-packages/allauth/templates
Я изменил базу.html и добавил мою статическую папку со всеми моими загрузочными материалами и jquery в настройки в файле:
app_settings.py
и добавил Это.
...
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
и это все.
Я не знаю, если это правильное способ сделать это, но если у кого-то есть лучший ответ, пожалуйста разместить его.