Python Django,从另一个视图呈现视图(调用特定URL)
简单的问题,我是Django和Pyton noob 我想做一件非常简单的事情,至少我这么认为: 我有一个小表格:Python Django,从另一个视图呈现视图(调用特定URL),python,django,forms,redirect,post,Python,Django,Forms,Redirect,Post,简单的问题,我是Django和Pyton noob 我想做一件非常简单的事情,至少我这么认为: 我有一个小表格: <form action="#" method="post"> {% csrf_token %} <label>Company Number:</label> <input type="text" name="company" placeholder=""/><br> <input ty
<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/$', 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'),
]
现在,当我提交表单的时候,我就要打电话给我,我只想回到主页,用一篇帖子来打电话,就像一个老家伙一样
return render(request, "SSO_Management_POC/userfilt.html")
我是这样做的,但问题是url没有被重置。。这样的结果,
结果是,我在该页面上所做的每个操作都不起作用,因为它不再被映射
我的意思是,应该是:
- )
return render(request, "SSO_Management_POC/userfilt.html")
这是电话:
“POST/SSO\u管理\u POC/userfilt/insertForm/HTTP/1.1”200 2648
我尝试了render,HttpResponseRedirect等等。。。但它总是发生在我用上一个调用的url上,我希望它被重置,我希望它是
唯一适合我的是:
return redirect("../")
但是
url(r'^userfilt/insertForm/$', views.insertForm, name='insertForm'),
return redirect('/SSO_Management_POC/userfilt')
但它仍然给我同样的问题:
return render(request,'/SSO_Management_POC/userfilt')
带我去
谢谢大家 以下代码是否解决了您的问题 在模板中:
<form action="{% url 'userfilt' %}" method="post">
成功发布后,您应该始终重定向,而不是渲染。执行
returnredirect(url)
是正确的做法,现在还不清楚您为什么不满意
请注意,
重定向
,因此您可以执行返回重定向('userfilt')
,这将带您到正确的位置。我不确定是否理解您的问题。。。如果希望表单从URL A重定向到URL B,则必须使URL B成为表单的目标(action=“…”
)(在这种情况下,视图B必须处理表单),或者使用post to A并重定向到B,但不能将URL B与post请求一起加载。您更喜欢哪个选项?如果我使用它总是带给我的操作,而不是/SSO\u Management\u POC/userfilt.html,它总是将我的文本附加到我所在的最后一页,即表单一!否:(如果我这样做,它总是将我带到/SSO_Management_POC/userfilt.htmlAnd,而不是/SSO_Management_POC/userfilt.htmlAnd,我想调用表单方法“def insertForm(request)”通过url映射,它是有效的,只是我在这一次结束时所做的重定向不起作用,因为它会将请求的url附加到上一次的url中…不,它不会!如果我这样做:重定向('userfilt'),它会给我以下错误:与参数“()”和关键字参数“{}”相反的“userfilt”。0模式尝试:[]如果我尝试(像往常一样)这样:返回重定向('SSO_Management\u POC/userfilt.html')(如此清晰,如此简单,应该是…)但它把我带到了这里:第二种情况是我不理解的,如果我返回重定向('SSO_Management\u POC/userfilt.html'))为什么它会把我带到???将该url附加到上一个url…因为您还没有使用前导斜杠从根开始:redirect(“/…”)
第一个错误大概是因为userfilt
模式包含在名称空间中,您没有提供足够的信息来知道确切的内容。我添加了所有url映射py文件,乍一看,我不是专家,他们似乎是对的……好吧,丹尼尔,我怎么不知道您在哪里,但如果您想要,我可以买下您一张到这里来的票,在我空空的头上给我几拳……我想这都是关于领先的斜杠……:(:(
<form action="{% url 'userfilt' %}" method="post">