我有一个简单的博客应用程序,用于处理帖子和评论。
当我按下html模板中的“发布”按钮时,什么也没发生。这很奇怪,因为通过更改urls.py并使用其他链接,我可以使其正常工作。我只是看不出有什么区别。
这是post_detail.html文件中的链接:
<a class="btn btn-outline-dark" href="{% url 'post_publish' pk=post.pk %}">Publish</a>
这是urls.py文件中的行:
re_path(r'^post/(?P<pk>\d+)/publish/', views.post_publish, name='post_publish'),
从悬停中可以看到,它要转到的链接是localhost:8000 / post / 3 / publish /,这是正确的。只是没有任何反应。根据服务器,发出了GET:
[28/Mar/2019 20:51:54] "GET /post/4/publish/ HTTP/1.1" 200 3699
我已经将服务器消息放入了models.py和views.py中,但是它们没有被打印出来。
现在...奇怪的部分来了。
如果我将post_detail.html行更改为:
<a class="btn btn-outline-dark" href="{% url 'post_publish_2' pk=post.pk %}">Publish</a>
(即,只需将网址引用名称从“ post_publish”更改为“ post_publish_2”)
并将此行添加到应用程序的urls.py文件中的urlpatterns中:
re_path(r'^publish/(?P<pk>\d+)/', views.post_publish, name='post_publish_2'),
然后该链接变为localhost:8000 / publish / 3 /。这很好用-服务器调用url,调用视图,然后调用模型上的方法-证明(据我所知)views.py,models.py或任何内容都不是任何东西其他。我只是不明白为什么这应该有所作为!
到底是什么原因导致了这种行为?