DJango Redirect не обновляет страницу
У меня проблема, когда "return redirect('/main')" работает, но приходится обновлять браузер вручную, чтобы увидеть изменения.
Из шаблона main.html, кнопка onclick вызывает JS jpButton(), которая выполняет работу, затем возвращается к функции DJango, которая обновляет значение сессии, затем перенаправляет на главную страницу, которая будет отображать значение в сессии. Но значение не меняется на странице, пока я вручную не обновлю браузер. Пожалуйста, помогите.
// jsbutton.js - called from onlick button in main template
async function jpButton() {
...
$.ajax({ type: "POST",
url: 'http://localhost:8080/main/jpConnect',
headers: { "X-CSRFToken": csrftoken },
data: { onlinestatus: "Online" },
....
### views.py ###
# This redirect works fine
def jpDisconnect(request):
request.session['onlinestatus'] = None
return redirect('/main')
# This is called from JS jpButton(), and the browse have to be manually refreshed afterwards
def jpConnect(request):
if request.headers.get('x-requested-with') == 'XMLHttpRequest':
request.session['onlinestatus'] = request.POST.get('onlinestatus', None)
return redirect('/main')
<!-- main.html -->
...
{% csrf_token %}
{% if request.session.onlinestatus %}
<a href="{% url 'jpDisconnect' %}">
<button class="button" type="button" > {{ request.session.onlinestatus }}
</button></a>
{% else %}
<button class="button" type="button" onclick="jpButton()"> Offline </button></a>
{% endif %}
...
Странно, но jpDisconnect() обновляет и изменяет значение на странице, а jpConnect() - нет (мне приходится вручную обновлять браузер, чтобы увидеть изменения).