Django博客未链接到详细信息视图
我有一个django博客,我正在工作,我有博客的第一部分,其中博客显示了数据库中的各种条目。但是,当我点击某个特定的博客帖子时,它不会将我重定向到详细视图,它只是将我重定向回可以查看所有博客帖子的博客: 通过在blog.html中单击此链接,我希望它链接到post.html中的特定帖子Django博客未链接到详细信息视图,django,Django,我有一个django博客,我正在工作,我有博客的第一部分,其中博客显示了数据库中的各种条目。但是,当我点击某个特定的博客帖子时,它不会将我重定向到详细视图,它只是将我重定向回可以查看所有博客帖子的博客: 通过在blog.html中单击此链接,我希望它链接到post.html中的特定帖子 <h2><a href="{% url 'entry_detail' slug=object.slug %}">{{ object.title }}</a></h2>
<h2><a href="{% url 'entry_detail' slug=object.slug %}">{{ object.title }}</a></h2>
views.py
from django.views import generic
from . import models
class BlogIndex(generic.ListView):
queryset = models.Entry.objects.published()
template_name = "blog.html"
paginate_by = 3
class BlogDetail(generic.DetailView):
model = models.Entry
template_name = "post.html"
blog.html
{% include 'head.html' %}
{% include 'navbar.html' %}
<div class="container">
{% load django_markdown %}
<br>
<br>
{% for object in object_list %}
<div class="post">
<h2><a href="{% url 'entry_detail' slug=object.slug %}">{{ object.title }}</a></h2>
<p class="meta"></p>
<p class="meta">
{{ object.created }} |
Tagged under {{ object.tags.all|join:", " }}
</p>
{{ object.body|markdown }}
</div>
{% endfor %}
<hr class="featurette-divider">
{% if is_paginated %}
<ul class="pager">
<li {% if not page_obj.has_previous %}class="disabled"{% endif %}><a {% if page_obj.has_previous %}href="?page={{ page_obj.previous_page_number }}"{% endif %}>Prev</a></li>
<li {% if not page_obj.has_next %}class="disabled"{% endif %}><a {% if page_obj.has_next %}href="?page={{ page_obj.next_page_number }}"{% endif %}>Next</a></li>
</ul>
{% endif %}
</div>
{% include 'footer.html' %}
使用以下内容定义URL时:
url(r'^', views.BlogIndex.as_view(), name="blog"),
url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
当您使用以下内容定义URL时,
^$
将匹配/
,但不匹配/entry/..
:
url(r'^', views.BlogIndex.as_view(), name="blog"),
url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
当您使用以下内容定义URL时,
^$
将匹配/
,但不匹配/entry/..
:
url(r'^', views.BlogIndex.as_view(), name="blog"),
url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
当您使用以下内容定义URL时,
^$
将匹配/
,但不匹配/entry/..
:
url(r'^', views.BlogIndex.as_view(), name="blog"),
url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
^$
将匹配/
,但不匹配/entry/..
由于Brandon,问题得以解决。重新排列我的url模式,从最具体到最不具体(从最长到最短)。然后重新启动服务器
urlpatterns = patterns(
'',
url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
url(r'^feed/$', feed.LatestPosts(), name="feed"),
url(r'^', views.BlogIndex.as_view(), name="blog"),
)
urlpatterns=patterns(
'',
url(r'^entry/(?P\S+)$,views.blogdail.as_view(),name=“entry_detail”),
url(r“^feed/$”,feed.LatestPosts(),name=“feed”),
url(r'^',views.BlogIndex.as_view(),name=“blog”),
)
多亏了布兰登,问题才得以解决。重新排列我的url模式,从最具体到最不具体(从最长到最短)。然后重新启动服务器
urlpatterns = patterns(
'',
url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
url(r'^feed/$', feed.LatestPosts(), name="feed"),
url(r'^', views.BlogIndex.as_view(), name="blog"),
)
urlpatterns=patterns(
'',
url(r'^entry/(?P\S+)$,views.blogdail.as_view(),name=“entry_detail”),
url(r“^feed/$”,feed.LatestPosts(),name=“feed”),
url(r'^',views.BlogIndex.as_view(),name=“blog”),
)
多亏了布兰登,问题才得以解决。重新排列我的url模式,从最具体到最不具体(从最长到最短)。然后重新启动服务器
urlpatterns = patterns(
'',
url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
url(r'^feed/$', feed.LatestPosts(), name="feed"),
url(r'^', views.BlogIndex.as_view(), name="blog"),
)
urlpatterns=patterns(
'',
url(r'^entry/(?P\S+)$,views.blogdail.as_view(),name=“entry_detail”),
url(r“^feed/$”,feed.LatestPosts(),name=“feed”),
url(r'^',views.BlogIndex.as_view(),name=“blog”),
)
多亏了布兰登,问题才得以解决。重新排列我的url模式,从最具体到最不具体(从最长到最短)。然后重新启动服务器
urlpatterns = patterns(
'',
url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),
url(r'^feed/$', feed.LatestPosts(), name="feed"),
url(r'^', views.BlogIndex.as_view(), name="blog"),
)
urlpatterns=patterns(
'',
url(r'^entry/(?P\S+)$,views.blogdail.as_view(),name=“entry_detail”),
url(r“^feed/$”,feed.LatestPosts(),name=“feed”),
url(r'^',views.BlogIndex.as_view(),name=“blog”),
)
当您检查源代码时,URL模板标记输出什么?它输出slug。这可能是一个模式意外地覆盖另一个模式的情况。我总是试着从最具体的到最不具体的(从最长到最短的)排列我的模式。是的,我猜这是在玩URL,因为其他一切看起来都是正确的。我试图改变周围的模式,但没有骰子。实际上,我改变了模式,重新启动了服务器,它似乎改变了一些东西。现在它出现了一个空白页。。。我会继续努力的,现在就开始!感谢Brandon和Rnevius,当您检查源代码时,URL模板标记会输出什么?它会输出slug。这可能是一个模式意外地覆盖另一个模式的情况。我总是试着从最具体的到最不具体的(从最长到最短的)排列我的模式。是的,我猜这是在玩URL,因为其他一切看起来都是正确的。我试图改变周围的模式,但没有骰子。实际上,我改变了模式,重新启动了服务器,它似乎改变了一些东西。现在它出现了一个空白页。。。我会继续努力的,现在就开始!感谢Brandon和Rnevius,当您检查源代码时,URL模板标记会输出什么?它会输出slug。这可能是一个模式意外地覆盖另一个模式的情况。我总是试着从最具体的到最不具体的(从最长到最短的)排列我的模式。是的,我猜这是在玩URL,因为其他一切看起来都是正确的。我试图改变周围的模式,但没有骰子。实际上,我改变了模式,重新启动了服务器,它似乎改变了一些东西。现在它出现了一个空白页。。。我会继续努力的,现在就开始!感谢Brandon和Rnevius,当您检查源代码时,URL模板标记会输出什么?它会输出slug。这可能是一个模式意外地覆盖另一个模式的情况。我总是试着从最具体的到最不具体的(从最长到最短的)排列我的模式。是的,我猜这是在玩URL,因为其他一切看起来都是正确的。我试图改变周围的模式,但没有骰子。实际上,我改变了模式,重新启动了服务器,它似乎改变了一些东西。现在它出现了一个空白页。。。我会继续努力的,现在就开始!谢谢Brandon和Rnevius我明白你的意思了。通过在/处切断url,您不允许它与/entry/匹配。因此,它没有冲突,并导致url列表中的第一个url。但是您允许它与/entry
匹配。如果它与/
不匹配,它将转到/entry
。除非我遗漏了什么,这是正确的answer@rnevius对不起,一定是说得有点不好。是的,我同意你。好吧,我明白你的意思。通过在/处切断url,您不允许它与/entry/匹配。因此,它没有冲突,并导致url列表中的第一个url。但是您允许它与/entry
匹配。如果它与/
不匹配,它将转到/entry
。除非我遗漏了什么,这是正确的answer@rnevius对不起,一定是说得有点不好。是的,我同意你。好吧,我明白你的意思。通过在/处切断url,您不允许