Ich bin neu in Django!Django, GET-Parameter in der URL nach einem POST-Aufruf beibehalten
ich eine einfache Anmeldeformular machte, wenn es eingereicht wird, ist es ein Etikett auf die vorherige Seite zurückkehrt, ist, dass die Haupt-Seite:
<form method="post"">
:
Die Form wie diese eingereicht
Und seine in urls.py abgebildet:
url(r'^userfilt/insertForm/$', views.insertForm, name='insertForm')
All urls.py Datei:
app_name = 'SSO_Management_POC'
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^user/$', views.user, name='user'),
url(r'^userfilt/$', views.userfilt, name='userfilt'),
url(r'^userfilt/insertForm/$', views.insertForm, name='insertForm'),
#url(r'^updateForm/$', views.updateForm, name='updateForm'),
url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),
url(r'^(?P<pk>[0-9]+)/results/$', views.ResultsView.as_view(), name='results'),
url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),
]
So der damit verbundene „def“ sein Name:
def insertForm(request):
if request.method == 'POST':
#some stuff here
#sending the get parameter to the main page:
return redirect('/SSO_Management_POC/userfilt/?label=User Registered!')
jetzt, wenn ich auf die Hauptseite leite ich wie etwas sehen werden:
Jetzt will ich einfach weiter so arbeiten, ich ‚ll einen Filter in den Eingang gestellt und ich eine Suche durchführen, unter dem Code:
if request.method == 'POST':
form = UserForm(data=request.POST)
val = request.POST.get('my_textarea')
return render(request, 'SSO_Management_POC/userfilt.html', {'top_user': TopUser.objects.filter(user_name__regex=val)})
Wie Sie ein POST Anruf zu sehen ist, aber es kommt die Frage, GET-Parameter ist immer noch da, so th Ursache ist
Und natürlich will ich nicht mehr dort das Etikett, es nach einem weiteren Anruf ...
und die URL sieht immer noch wie diese verschwinden soll:
http://127.0.0.1:8000/SSO_Management_POC/userfilt/?label=User%20Registered!
Jetzt weiß ich, dass ich dies mit Abhilfe Vorderendseite lösen kann, aber ich würde gerne wissen:
- Gibt es etwas, das nicht gut, da Ablauf von Operationen ist?
- Wie kann ich das beheben? Wo bin ich falsch ..?
- Ich habe versucht, nach etwas zu suchen, um den get-Parameter in der URL zu bereinigen, oder um ihn zurückzusetzen, weil ich dachte, es sei der leichtere Weg, aber die einzigen Dinge, die ich gefunden habe, kosten viel Code, haben Sie eine andere Idee die URL löschen?
- Gibt es eine andere Django-Methode, die Ihnen dabei hilft, dieses Problem zu lösen oder dieses Problem einfach zu vermeiden?
Was ist Ihr '
Ich füge es der Frage hinzu. – ivoruJavaBoy
Wie ich Ihnen schon gesagt habe, 'rendern' nicht - und kann und sollte nicht die URL ändern, auf der Sie sich befinden. Das ist einfach nicht das, was es tut. Es dient zur Anzeige der Vorlage * der von Ihnen angeforderten Seite *. –