Frage

Ich weiß nicht, ob es möglich ist, aber ich möchte am Ende der URL wenige Parameter hinzufügen mit Middleware. Kann es ohne Umleitung nach Modyfing angeforderte URL getan werden?

dh. Benutzer klickt: ... / some_link und Middleware umschreibt es: ... / some_link par1 = 1 & par2 = 2

Andere Art und Weise ist reponse zu ändern und jeden HTML-Link zu ersetzen, aber es ist nicht etwas, Ich mag würde tun.

Danke

War es hilfreich?

Lösung

Ich denke, das wirklich auf Ihr Problem hängt und was genau wollen Sie tun.

Sie können nicht die URL ändern, ohne den Benutzer zu umleiten, wie Sie die URL auf einer Seite ohne Neuladen nicht ändern können. Im Grunde eine Umleitung ist eine Antwort erklärt dem Benutzer, sich zu bewegen, gibt es keinen Weg, um tatsächlich die URL zu ändern. Beachten Sie, dass selbst wenn Sie es in so etwas wie JavaScript zu tun haben Sie im Grunde das gleiche wie eine Umleitung, so dass es nicht Client oder Server-Seite durchgeführt werden kann.

ich denke, es könnte helfen, wenn Sie uns erklären, warum Sie diese Informationen über die URL übergeben müssen. Warum nicht speichern Daten in der Sitzung?

Ich denke, man die Daten an das Request-Objekt hinzufügen könnte, aber das fügt es nicht auf die URL.

Andere Tipps

class YourRedirectMiddleware:

    def process_request(self, request):
        redirect_url = request.path+'?par1=1&par2=2'
        return HttpResponsePermanentRedirect(redirect_url)

Was sind Sie versuchen, auf diese Weise zu erreichen und warum?

Sie können tun, was Sie in der Middleware mögen. Sie haben Zugriff auf das Request-Objekt, können Sie die URL erhalten und in eine neue umleiten, wenn Sie wollen.

Meine Frage wäre, warum tun Sie dies tun wollen? Wenn Sie Informationen über die Anforderung zu halten brauchen, ist dies der richtige Ort zu tun, ist in der Sitzung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top