django 登录/注册直接在主页上

lndjwyie  于 2023-05-19  发布在  Go
关注(0)|答案(3)|浏览(178)

而不是登录在页面上'../帐户/登录/'我想让用户直接登录在主页上,例如。我该怎么做才能让它成为可能?如何用allauth连接主页上的输入字段?我不知道这是不是太复杂了,不能以这种方式工作?

68bkxrlz

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。如果我能做到这一点,我将在稍后更新回复。

j8ag8udp

j8ag8udp2#

如果你真的需要,你可以把allauth网址下面一个不同的路径。allauth使用基于名称的URL反转,因此新的路径前缀将自动拾取。

shstlldc

shstlldc3#

添加登录表单:在您的主页上,包括一个登录表单,输入用户名/电子邮件和密码。或将表格提交给allauth:将登录表单连接到allauth身份验证系统。确保表单的action属性指向适当的allauth登录URL(例如,“/accounts/login/”)。

相关问题