Supprimer la chaîne de requête d'une vue dans Django
MT
J'ai une page appelée controlpanel, où je peux démarrer / arrêter des scripts. Lorsque le bouton des scripts de démarrage et d'arrêt est enfoncé, il renvoie la même page avec la couleur du bouton modifiée et je souhaite supprimer la chaîne de requête.
view.py
def controlpanel(request):
data = {'paypal': paypal_, 'cpu': cpu_usage, 'active': active_task ...}
return render(request, 'admin/controlpanel.html', context=data)
def startapp(request):
if request.META['QUERY_STRING']:
#... start scripts etc..
request.META['QUERY_STRING'] = False
return controlpanel(request)
la fonction retourne le panneau de contrôle avec la chaîne de requête ... (127.0.0.1:8000/startapp?run=True mais je veux seulement 127.0.0.1:8000/controlpanel)
controlpanel.html
<div>
{% if active %}
<button onclick="f()" class="btn btn-md btn-success">Start</button>
{% else %}
<button onclick="f()" class="btn btn-md btn-warning">Start</button>
{% endif %}
</div>
<script>
function f() {
let a = null;
if ('{{active}}' === 'True') {
a = 'stop'
} else {
a = 'start'
}
window.location.href = "/startapp?run=" + a;
}
</script>
Raider
Vous pouvez utiliser la redirection de Django pour renvoyer l'URL sans les paramètres de requête.