examples - django template variable
Iniciar sesión/Registrarse directamente en la página de inicio (2)
Si realmente tiene que hacerlo, puede poner las URL de Allauth debajo de una ruta diferente. Allauth utiliza la reversión de URL basada en el nombre, por lo que el nuevo prefijo de ruta se recogerá automáticamente.
En lugar de iniciar sesión en la página ''../account/login/'', me gustaría que los usuarios puedan iniciar sesión directamente en la página de inicio, por ejemplo. ¿Qué debo hacer para que sea posible? ¿Cómo conectar los campos de entrada en la página de inicio con Allauth? No sé si esto es demasiado complicado para que funcione de esa manera.
Hay una solución que funciona para mí. No es la solución óptima porque no es SECO, así que estaría agradecido si alguien lo mejora.
Básicamente, lo que hice fue renderizar la plantilla oficial de inicio de sesión de Allauth y copiar el código HTML del formulario. Luego cambié el token csrf y las URL y lo pegué en la plantilla de la página de inicio.
Aquí está el código de ejemplo para iniciar / cerrar sesión. Puedes hacer lo mismo con el registro. (Tenga en cuenta que solo estoy usando el correo electrónico y no el nombre de usuario para iniciar sesión, su código puede ser diferente en función de su configuración de allauth. Mire sus plantillas de inicio de sesión y registro para ver qué campos de entrada necesita y sus nombres).
{% load account %}
<h1>Login / Logout</h1>
{% if user.is_authenticated %}
<p>Loged in with e-mail: {{ request.user.email }}</p>
<a href="{% url "account_logout" %}">Logout</a>
{% else %}
<form action="{% url "account_login" %}" method="post">
{% csrf_token %}
<input type="email" placeholder="E-mail" name="login">
<input type="password" placeholder="Password" name="password">
<label for="id_remember_menu" class="text-primary">Remember Me:</label>
<input id="id_remember_menu" name="remember" type="checkbox">
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
<button type="submit">Login</button>
<a href="{% url ''account_reset_password'' %}">Forgot Password?</a>
</form>
{% endif %}
Me gustaría mejorar el código y poder renderizar el formulario directamente en la plantilla de la página de inicio con {{ form }}
lugar de copiar el HTML. Si logro hacerlo, actualizaré la respuesta más tarde.