readthedocs - anulando las plantillas predeterminadas de django-allauth
django django allauth (7)
Utilicé esta biblioteca de registro / registro social django allauth para un proyecto mío. ¿Cómo personalizo las plantillas y formularios predeterminados para dar una mejor apariencia?
Echa un vistazo a la aplicación de example
; Tiene una carpeta de templates
que indica el diseño de las plantillas necesarias.
En sus puntos de vista:
from allauth.account.views import SignupView, LoginView
class MySignupView(SignupView):
template_name = ''my_signup.html''
class MyLoginView(LoginView):
template_name = ''my_login.html''
Preste atención a los ejemplos y documentos para estructurar sus propias plantillas.
Mira esta pieza en las plantillas de ejemplo, aunque:
<form id="signup_form" method="post" action="{% url ''account_signup'' %}">
Tuve que eliminar el enlace de la URL para que funcione correctamente en mi propia plantilla:
<form id="signup_form" method="post" action="">''
Para personalizar django-allauth después de instalarlo, cópielo de site-packages y péguelo en el directorio de aplicaciones de su proyecto. De esta manera, la aplicación allauth predeterminada y sus plantillas que se usarán serán las de la aplicación allauth de su proyecto. Luego, si desea modificar signup.html de socialaccount , vaya a apps / allauth / templates / socialaccount / signup.html y modifíquelo editando dentro de la etiqueta ''bloquear contenido'':
{% block content %}
// your customized html for signup form
{% endblock %}
Espero que esto te ayudará.
Todas estas son buenas sugerencias.
La mayoría de estos deberían funcionar.
Sin embargo, lo único que me funcionó fue incluir mis propias plantillas en "project / app / templates / account /" y asegurarse de que "django-allauth" aparezca en la lista de INSTALLED_APPS después de mi propia aplicación.
Descubrí esto here .
Utilice la misma lógica que anula las plantillas de administración .
la última versión de all-auth en github tiene sus plantillas en el exterior, pero la de Pypi no lo es, todo lo que necesita hacer es clonar el repositorio en el directorio de su proyecto y anular las plantillas. Tan sencillo como eso.
Suponiendo que haya establecido un directorio de plantillas de nivel de proyecto utilizando la configuración TEMPLATE_DIRS
como:
TEMPLATE_DIRS = (os.path.join(PROJECT_DIR, ''templates''),)
Debería poder copiar todas las carpetas que se muestran here en ese directorio y editarlas según sea necesario. La mayoría de las plantillas parecen llenar un {% block content %}
, por lo que probablemente sea más fácil si su plantilla site_base.html
define ese bloque en algún lugar.
Si no ha configurado TEMPLATE_DIRS
, puede hacer lo mismo, pero copie las carpetas de plantillas en el directorio de templates
de una de sus aplicaciones. Prefiero establecer TEMPLATE_DIRS
y mantener las plantillas del sitio principal como base.html
allí, ya que realmente no pertenecen a una aplicación en particular, pero eso es realmente una preferencia; El cargador de plantillas debe encontrarlos de cualquier manera.