【发布时间】:2021-07-28 13:22:27
【问题描述】:
我POST 一些数据通过 HTML 表单使用 AJAX 修改我的数据库中的数据。通过在数据库上执行存储过程成功地修改了数据。 view.py 函数调用的最后一行是return redirect('Home')。
重定向成功执行,但我没有被重定向。我可以通过在 AJAX 调用的成功函数中添加 window.location.href = 'http://127.0.0.1:8000/ 来克服这个问题。问题是,我想使用messages.success(request, 'Data Successfully Updated'),它只在刷新 AJAX 发起的重定向后才会出现。
return redirect('Home') 在这里不起作用是否有原因,有没有办法克服这个问题?
Home 是我在urls.py 中的路径名称
[06/May/2021 17:23:52] "POST /search/ HTTP/1.1" 302 0 // submitting changes to database
[06/May/2021 17:23:55] "GET / HTTP/1.1" 200 4750 // The page I am intending to redirect to
Ajax 调用
function updateCards(){
ajaxUpdCard().done()
function ajaxUpdCard() {
return $.ajax({
type: 'POST',
url: '',
data: {csrfmiddlewaretoken: window.CSRF_TOKEN, Action: 'Card', CardID: $('#currentCardID').val(),
BCard: $('#sr-bad_card').val(), CNum: $('#sr-card_number').val(), CPin: $('#sr-pin_number').val(),
Bal: $('#sr-balance').val()}
})
}
}
views.py
if request.method == 'POST' and request.POST['Action'] == 'Card':
cardID = request.POST['CardID']
Bcard = int(request.POST['BCard'])
CNum = int(request.POST['CNum'])
CPin = int(request.POST['CPin']) if request.POST['CPin'] != '' and request.POST['CPin'] != 'XXXX' else 'Null'
print(CPin)
Bal = request.POST['Bal']
update_card_transaction(entityID, userID, cardID, Bcard, CNum, CPin, Bal)
messages.success(request, 'Data Successfully Updated')
return redirect('Home')
【问题讨论】: