网址未从模板调用视图

时间:2019-03-28 19:57:37

标签: django

我有一个简单的博客应用程序,用于处理帖子和评论。

当我按下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或任何内容都不是任何东西其他。我只是不明白为什么这应该有所作为!

到底是什么原因导致了这种行为?

0 个答案:

没有答案