回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>简单的问题,我是一个Django和Pyhton noob。。。</p>
<p>我想做一件很简单的事,至少我这么认为:</p>
<p>我有一个小表格:</p>
<pre><code><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>
</code></pre>
<p>这是这样映射的:</p>
<pre><code>url(r'^userfilt/insertForm/$', views.insertForm, name='insertForm'),
</code></pre>
<p>提交此表单后,我想返回主视图:</p>
<pre><code>url(r'^userfilt/$', views.userfilt, name='userfilt')
</code></pre>
<p>Url映射文件:</p>
<pre><code>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'),
]
</code></pre>
<p>主视图是这样的(但它认为此代码与问题无关……):</p>
<pre><code>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')
</code></pre>
<p>现在,当我提交表格的时候,我就想回到主页,用一个帖子来打电话,就像往常一样!</p>
<pre><code>return render(request, "SSO_Management_POC/userfilt.html")
</code></pre>
<p>我是这样做的,但问题是url没有被重置。。像这样的结果</p>
<p><strong><a href="http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/#" rel="nofollow">http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/#</a></strong></p>
<p>结果我在那页上做的每一个操作都不起作用,因为它不再被映射了</p>
<p>我是说,应该是:</p>
<ul>
<li><strong><a href="http://127.0.0.1:8000/SSO_Management_POC/userfilt/" rel="nofollow">http://127.0.0.1:8000/SSO_Management_POC/userfilt/</a></strong></li>
</ul>
<p>反而是</p>
<ul>
<li><strong><a href="http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/#" rel="nofollow">http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/#</a>)</strong></li>
</ul>
<p>为了更好地解释我的问题。。</p>
<p>我转到主页(<a href="http://127.0.0.1:8000/SSO_Management_POC/userfilt/" rel="nofollow">http://127.0.0.1:8000/SSO_Management_POC/userfilt/</a>)</p>
<p><strong>“GET/SSO_Management_POC/userfilt/HTTP/1.1”200 2648</strong></p>
<p>然后我单击create用户来调用表单,它会将我带到:(<a href="http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/" rel="nofollow">http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/</a>)</p>
<p><strong>“获取/单点登录管理”POC/userfilt/insertForm/HTTP/1.1“200 1549</strong></p>
<p>然后我提交了表格,我想回到主页上,我不明白的是:
它把我带到这里</p>
<p><a href="http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/#" rel="nofollow">http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/#</a></p>
<p>但我想去这里</p>
<p><a href="http://127.0.0.1:8000/SSO_Management_POC/userfilt" rel="nofollow">http://127.0.0.1:8000/SSO_Management_POC/userfilt</a></p>
<p>这也是代码:</p>
<pre><code>return render(request, "SSO_Management_POC/userfilt.html")
</code></pre>
<p>这是电话:</p>
<p><strong>“POST/SSO_Management_POC/userfilt/insertForm/HTTP/1.1”200 2648</strong></p>
<p>我试过render,HttpResponseRedirect等等。。。但它总是发生在我调用的url与上一个,我希望它被重置,我希望它是…/!!!</p>
<p>唯一对我有用的是:</p>
<pre><code>return redirect("../")
</code></pre>
<p>但是</p>
<ol>
<li>这太脏了</li>
<li>这不允许打电话!</li>
</ol>
<p><strong>更新</strong>
多亏了丹尼尔,我也把它修好了:</p>
<pre><code>return redirect('/SSO_Management_POC/userfilt')
</code></pre>
<p>但它仍然给我同样的问题:</p>
<pre><code>return render(request,'/SSO_Management_POC/userfilt')
</code></pre>
<p>带我去<a href="http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/" rel="nofollow">http://127.0.0.1:8000/SSO_Management_POC/userfilt/insertForm/</a></p>
<p>多谢各位!</p>