簡體   English   中英

request.post 變量總是返回為空

[英]request.post variable is always returning as empty

所以我試圖查看用戶是否匹配他們的舊密碼,如果他們不匹配,那么它會給出一條消息說“你的舊密碼不正確”但是如果他們匹配他們的舊密碼,那么它應該檢查用戶是否匹配新的並確認密碼正確,如果他們沒有,那么它應該給出一條消息說“你的新密碼不匹配”,但如果他們的密碼是空的,它應該說“你的新密碼是空的,但是即使我的密碼不是空的,它總是說我密碼是空的。我也嘗試過if new_password1 or new_password2 == ''但這也有相同的結果。

視圖.py

@login_required
def userchange(request):
    if request.method == 'POST':
        user = request.user
        old_password = request.POST['Old password']
        new_password1 = request.POST['New password1']
        new_password2 = request.POST['New password2']
        if user.check_password(old_password):
            if new_password1 == new_password2:
                if new_password1 or new_password2 is None:
                    return render(request, 'main/change.html', {'error':'Your new passwords are empty!'})
                else:
                    user.set_password(new_password1)
                return render(request, 'main/change.html', {'error':'Your password has been changed succesfully!'})
            else:
                return render(request, 'main/change.html', {'error':'Your new passwords do not match'})
        else:
            return render(request, 'main/change.html', {'error':'Your old password is incorrect'})
    elif request.method == "GET":
        return render(request, 'main/change.html')

更改.html

<h1>Note: You will be logged out</h1>
<h2>{{ error }}</h2>
<form method="POST">
    {% csrf_token %}
    <input type="password" placeholder="Old password" name="Old password">
    <input type="password" placeholder="New password" name="New password1">
    <input type="password" placeholder="Confirm password" name="New password2">
    <button type="submit">Change password</button>
</form>

你需要改變

if new_password1 or new_password2 is None:

if new_password1 is None or new_password2 is None:

如果new_password1是任何真實值...它將評估new_password1 or new_password2 is None :因為True or new_password2 is None ...這顯然是 True...(您也可能== ''而不是is None

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM