простой вопрос, я Джанго и Pyhton нуб ...Джанго, делая вид с другой точки зрения (вызова определенного URL)
Я пытаюсь сделать очень простую вещь, по крайней мере, я думаю, так:
Я немного формы:
<form action="#" method="post">
{% csrf_token %}
<label>Company Number:</label>
<input type="text" name="company" placeholder=""/><br>
<input type="submit" id="register value=" OK" />
</form>
это отображенный так:
url(r'^userfilt/insertForm/$', views.insertForm, name='insertForm'),
Теперь после того, как представил эту форму я Wa нт, чтобы вернуться к главному экрану:
url(r'^userfilt/$', views.userfilt, name='userfilt')
Url отображение файла:
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'),
]
Основной вид, как это (но не думаю, что этот код вовлечен в проблему ..) :
def userfilt(request):
if request.GET.get('create'):
return HttpResponseRedirect('insertForm')
if request.GET.get('update'):
print request.GET.get('pk')
return render(request, 'SSO_Management_POC/updateForm.html')
if request.method == 'POST':
form = UserForm(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)})
else:
print '4'
return render(request, 'SSO_Management_POC/userfilt.html')
теперь вызов, который убивает меня происходит, когда я отправить форму, я просто хочу, чтобы вернуться на главную страницу, назвав его с POST, вроде всегда делали!
return render(request, "SSO_Management_POC/userfilt.html")
Я делаю это так, но проблема заключается в том, что URL не были сброшены .. и результаты, как это,
http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/#
в результате чего каждая операция я сделал на этой странице не работает, потому что он больше не отображается.
Я имел в виду, что это должно быть:
и вместо этого
Чтобы попытаться объяснить мой вопрос лучше ..
я иду к маме в странице (http://127.0.0.1:8000/SSO_Management_POC/userfilt/)
"GET/SSO_Management_POC/userfilt/HTTP/1.1" 200 2648
затем я нажимаю на создании пользователя, чтобы вызвать форму, она приносит мне: (http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/)
«GET/SSO_Management_POC/userfilt/insertForm/HTTP/1.1" 200 1549
чем я отправить форму, и я хотел бы, чтобы вернуться на главную страницу, и тут приходит вещь я не понимаю: он привел меня сюда
http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/#
, но я хочу пойти сюда
http://127.0.0.1:8000/SSO_Management_POC/userfilt
это снова код:
return render(request, "SSO_Management_POC/userfilt.html")
это вызов, сделанный:
"POST/SSO_Management_POC/userfilt/insertForm/HTTP/1.1" 200 2648
Я попытался с рендер, с HttpResponseRedirect и так далее ... Но всегда случается, что url я звоню с предыдущим, я хочу, чтобы он был сброшен, я хочу, чтобы это было ../ !!!
Единственное, что работает для меня:
return redirect("../")
но
- это грязная
- это не позволяет сделать вызов POST!
UPDATE Благодаря Даниилу я также исправить это следующим образом:
return redirect('/SSO_Management_POC/userfilt')
Но она по-прежнему дает мне тот же вопрос с:
return render(request,'/SSO_Management_POC/userfilt')
Как мне http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/
Большое спасибо людям!
Я не уверен, что я понимаю ваш вопрос ... Если вы хотите, чтобы ваша форма перенаправлялась с URL-адреса A на URL-адрес B, вам либо нужно указать URL B адресата ('action =" ... "') ваша форма (в этом случае, вид B должен обработать форму) ИЛИ использовать пост для A и перенаправить на B, но вы НЕ МОЖЕТЕ иметь URL B, загруженный запросом POST. Какой вариант вы бы предпочли? – raphv
Если я использую действие, оно всегда приводит меня к http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/userfilt.html вместо/SSO_Management_POC/userfilt.html он всегда добавляет мой текст на последнюю страницу, я был, форма одна! – ivoruJavaBoy