Python Django刷新页面但不重定向
在页面/主页上,我在导航栏中创建了一个登录按钮,当您单击它时,它将打开一种弹出窗口,显示更改为阻止。但我的问题是,我无法找出用户在使用错误数据登录时如何留在页面上。此时,它只是将我返回到/主页,如果我再次单击导航栏按钮,登录窗口将打开并显示“错误”消息,但我希望它将我重定向到/主页,但登录弹出窗口仍然打开,或者不将我重定向到任何地方。 因此,我想我只是在寻找一种方式来更新此消息,但您仍停留在登录弹出窗口上。这是我的 views.py的一部分:Python Django刷新页面但不重定向,python,html,django,django-views,Python,Html,Django,Django Views,在页面/主页上,我在导航栏中创建了一个登录按钮,当您单击它时,它将打开一种弹出窗口,显示更改为阻止。但我的问题是,我无法找出用户在使用错误数据登录时如何留在页面上。此时,它只是将我返回到/主页,如果我再次单击导航栏按钮,登录窗口将打开并显示“错误”消息,但我希望它将我重定向到/主页,但登录弹出窗口仍然打开,或者不将我重定向到任何地方。 因此,我想我只是在寻找一种方式来更新此消息,但您仍停留在登录弹出窗口上。这是我的 views.py的一部分: def post(self、request、*arg
def post(self、request、*args、**kwargs):
#form=UserCreationForm(request.POST)
#打印(表单错误)
#
username=request.POST.get('username')
password=request.POST.get('password')
用户=验证(请求,用户名=用户名,密码=密码)
如果用户不是无:
打印(用户“已成功登录”)
登录(请求、用户)
返回HttpResponseRedirect('/recipes/all')
其他:
消息。错误(请求“密码或用户名不正确”)
返回HttpResponseRedirect('/recipes/all')
这是我的HTML文件的一部分:
<div class="login-popup-box" id="login-popup-box">
<div class="user-card-login">
<div class="close-button-box">
<button
class="close-button"
onclick="document.getElementById('login-popup-box').style.display='none'"
title="Close"
>
<i class="fa fa-close close-button-icon"></i>
</button>
</div>
<h1 class="login-title">Login</h1>
{% for message in messages %}
<div class="alert alert-success">
<a class="close" href="#" data-dismiss="alert">×</a>
{{ message }}
</div>
{% endfor %}
<form method="POST" action="">
<div class="input-group-username">
<div class="input-group-username-icon">
<i class="fa fa-user"></i>
</div>
{% csrf_token %}
<input
type="text"
name="username"
placeholder="Username..."
class="form-control"
/>
</div>
<div class="input-group-password">
<div class="input-group-password-icon">
<i class="fas fa-key"></i>
</div>
<input
type="password"
name="password"
placeholder="Password..."
class="form-control"
/>
</div>
<div class="info-text">
<p>
Du hast keinen Account?
<a class="create-acc-link" onclick="viewChange('register')"
>Erstelle dir einfach einen</a
>
</p>
</div>
<div class="input-group-button">
<input class="login_btn" type="submit" value="Login" />
</div>
</form>
</div>
</div>
登录
{消息%中的消息为%s}
{{message}}
{%endfor%}
{%csrf_令牌%}
你有凯宁账户吗?
埃因法赫酒店
我真的希望你能帮助我。非常感谢
PS:我还想通过HTTP重定向传递一个变量,这样如果这个变量为真,我就可以显示弹出窗口。听起来像是要执行AJAX请求。你考虑过了吗?我想这是解决办法,但是我现在不能测试,所以如果它工作的话,我会写的,谢谢!
<div class="login-popup-box" id="login-popup-box">
<div class="user-card-login">
<div class="close-button-box">
<button
class="close-button"
onclick="document.getElementById('login-popup-box').style.display='none'"
title="Close"
>
<i class="fa fa-close close-button-icon"></i>
</button>
</div>
<h1 class="login-title">Login</h1>
{% for message in messages %}
<div class="alert alert-success">
<a class="close" href="#" data-dismiss="alert">×</a>
{{ message }}
</div>
{% endfor %}
<form method="POST" action="">
<div class="input-group-username">
<div class="input-group-username-icon">
<i class="fa fa-user"></i>
</div>
{% csrf_token %}
<input
type="text"
name="username"
placeholder="Username..."
class="form-control"
/>
</div>
<div class="input-group-password">
<div class="input-group-password-icon">
<i class="fas fa-key"></i>
</div>
<input
type="password"
name="password"
placeholder="Password..."
class="form-control"
/>
</div>
<div class="info-text">
<p>
Du hast keinen Account?
<a class="create-acc-link" onclick="viewChange('register')"
>Erstelle dir einfach einen</a
>
</p>
</div>
<div class="input-group-button">
<input class="login_btn" type="submit" value="Login" />
</div>
</form>
</div>
</div>