Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django博客未链接到详细信息视图_Django - Fatal编程技术网

Django博客未链接到详细信息视图

Django博客未链接到详细信息视图,django,Django,我有一个django博客,我正在工作,我有博客的第一部分,其中博客显示了数据库中的各种条目。但是,当我点击某个特定的博客帖子时,它不会将我重定向到详细视图,它只是将我重定向回可以查看所有博客帖子的博客: 通过在blog.html中单击此链接,我希望它链接到post.html中的特定帖子 <h2><a href="{% url 'entry_detail' slug=object.slug %}">{{ object.title }}</a></h2>

我有一个django博客,我正在工作,我有博客的第一部分,其中博客显示了数据库中的各种条目。但是,当我点击某个特定的博客帖子时,它不会将我重定向到详细视图,它只是将我重定向回可以查看所有博客帖子的博客:

通过在blog.html中单击此链接,我希望它链接到post.html中的特定帖子

<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,您不允许