而不是登录在页面上'../帐户/登录/'我想让用户直接登录在主页上,例如。我该怎么做才能让它成为可能?如何用allauth连接主页上的输入字段?我不知道这是不是太复杂了,不能以这种方式工作?
68bkxrlz1#
有一个解决方案,为我工作。这不是最佳解决方案,因为它不是干燥的,所以我会很感激有人改进它!基本上我所做的是呈现官方allauth登录模板并复制表单的HTML代码。然后,我更改了csrf令牌和url,并将其粘贴到主页模板。下面是登录/注销的示例代码。你也可以用sign up做同样的事情。(请注意,我只使用电子邮件,而不是用户名登录,您的代码可能会有所不同,根据您的allauth设置。查看您的登录和注册模板,了解您需要哪些输入字段及其名称。)
{% 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 %}
我想改进代码,并能够呈现的形式直接在主页模板与{{ form }},而不是复制的HTML。如果我能做到这一点,我将在稍后更新回复。
{{ form }}
j8ag8udp2#
如果你真的需要,你可以把allauth网址下面一个不同的路径。allauth使用基于名称的URL反转,因此新的路径前缀将自动拾取。
shstlldc3#
添加登录表单:在您的主页上,包括一个登录表单,输入用户名/电子邮件和密码。或将表格提交给allauth:将登录表单连接到allauth身份验证系统。确保表单的action属性指向适当的allauth登录URL(例如,“/accounts/login/”)。
3条答案
按热度按时间68bkxrlz1#
有一个解决方案,为我工作。这不是最佳解决方案,因为它不是干燥的,所以我会很感激有人改进它!
基本上我所做的是呈现官方allauth登录模板并复制表单的HTML代码。然后,我更改了csrf令牌和url,并将其粘贴到主页模板。
下面是登录/注销的示例代码。你也可以用sign up做同样的事情。(请注意,我只使用电子邮件,而不是用户名登录,您的代码可能会有所不同,根据您的allauth设置。查看您的登录和注册模板,了解您需要哪些输入字段及其名称。)
我想改进代码,并能够呈现的形式直接在主页模板与
{{ form }}
,而不是复制的HTML。如果我能做到这一点,我将在稍后更新回复。j8ag8udp2#
如果你真的需要,你可以把allauth网址下面一个不同的路径。allauth使用基于名称的URL反转,因此新的路径前缀将自动拾取。
shstlldc3#
添加登录表单:在您的主页上,包括一个登录表单,输入用户名/电子邮件和密码。或将表格提交给allauth:将登录表单连接到allauth身份验证系统。确保表单的action属性指向适当的allauth登录URL(例如,“/accounts/login/”)。