擅长:python、mysql、java
<p>Django按照定义的顺序尝试url,并使用第一个匹配项。在本例中,您有以下URL:</p>
<pre><code>url(r'^(?P<slug>[\w-]+)/$', post_detail, name='detail'),
...
url(r'^submit_video/$', submit_video, name='submit_video'),
url(r'^privacy/$', privacy, name='privacy'),
url(r'^terms/$', terms, name='terms'),
url(r'^dcma/$', dcma, name='dcma'),
</code></pre>
<p>后一个url中的任何一个也由<code>post_detail</code>视图的url模式匹配。然后,<code>post_detail</code>视图尝试查找与slug匹配的post,但找不到,并引发一个<code>Http404</code>。当第一个匹配的视图引发错误时,不会调用其他模式的视图。在</p>
<p>要解决这个问题,您可以做两件事之一。要么更改<code>post_detail</code>的url模式,使其与其他模式不冲突,要么将最后四个模式上移到<code>post_detail</code>模式之上。在后一种情况下,不能使用任何冲突的url作为post的slug。在</p>