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.

Articles connexes


Supprimer la chaîne de requête dynamique d'Apache

Rakesh J'essaie de supprimer une partie de l'uri dynamique d'Apache, j'ai essayé différentes règles de réécriture mais je n'arrive nulle part. accessdenied?group=test&oam_res= ce qui vient après &oam_res doit être supprimé, aidez s'il vous plaît. arkascha La q