Я использовал эту библиотеку социальной регистрации/регистрации django allauth для своего проекта. Как настроить шаблоны и формы по умолчанию, чтобы они выглядели лучше?
переопределение шаблонов по умолчанию django-allauth
Ответы (7)
в последней версии all-auth на github есть свои шаблоны снаружи, а в Pypi нет, все, что вам нужно сделать, это клонировать репо в каталоге вашего проекта и переопределить шаблоны. Так просто, как, что.
Предполагая, что вы установили каталог шаблонов уровня проекта, используя настройку TEMPLATE_DIRS, например:
TEMPLATE_DIRS = [
os.path.join(PROJECT_DIR, 'templates'),
]
Вы должны иметь возможность скопировать все папки, показанные здесь в этот каталог и отредактируйте их по своему усмотрению. Большинство шаблонов, похоже, заполняют блок {% block content %}, поэтому, вероятно, будет проще, если ваш шаблон site_base.html где-нибудь определит этот блок.
Если вы не установили TEMPLATE_DIRS, вы можете сделать то же самое, но скопировать папки шаблона в каталог templates одного из ваших приложений. Я предпочитаю устанавливать TEMPLATE_DIRS и хранить основные шаблоны сайта, такие как base.html, так как они на самом деле не принадлежат конкретному приложению, но это просто предпочтение; загрузчик шаблонов должен найти их в любом случае.
base.html (все еще с {% block content%}).
- person Mark; 09.06.2015
TEMPLATE_DIRS устарел и является частью ШАБЛОНОВ docs.djangoproject.com/en/1.8/ ссылка/шаблоны/обновление. Копирование шаблонов/чего-либо в пакет - плохая практика, и позже это навредит вам.
- person Marc; 30.06.2016
В ваших взглядах:
from allauth.account.views import SignupView, LoginView
class MySignupView(SignupView):
template_name = 'my_signup.html'
class MyLoginView(LoginView):
template_name = 'my_login.html'
Обратите внимание на примеры и документы для структурирования собственных шаблонов.
Посмотрите эту часть в примерах шаблонов:
<form id="signup_form" method="post" action="{% url 'account_signup' %}">
Мне пришлось удалить URL-ссылку, чтобы она правильно работала в моем собственном шаблоне:
<form id="signup_form" method="post" action="">'
Используйте ту же логику, что и для переопределения шаблонов администратора.
Взгляните на приложение example; в нем есть папка templates, в которой указано расположение необходимых шаблонов
Все это хорошие предложения.
Большинство из них должны работать.
Единственное, что сработало для меня, это включить мои собственные шаблоны в "project/app/templates/account/" и убедиться, что "django-allauth" указан в INSTALLED_APPS после моего собственного приложение.
Я обнаружил это здесь.
Чтобы настроить django-allauth после его установки, скопируйте его из пакетов сайта и вставьте в каталог приложений вашего проекта. Таким образом, приложение allauth по умолчанию и его шаблоны будут использоваться в приложении allauth вашего проекта. Затем, если вы хотите изменить signup.html в socialaccount, перейдите в apps\allauth\templates\socialaccount\signup.html и измените его, редактирование внутри тега «блокировать содержимое»:
{% block content %}
// your customized html for signup form
{% endblock %}
Надеюсь, что это поможет вам.
git clone в папку проекта, чем дублировать код.
- person boldnik; 07.06.2013