簡體   English   中英

基本的Django,如何為博客的DetailView帖子編寫URLConf?

[英]Basic Django,How to write a URLConf for a blog's DetailView Post?

我是Django的新手,我在為mysql目錄中的博客應用程序編寫URLConf的正確代碼時遇到了問題。博客出現在http://127.0.0.1:8000/blog/但我無法在博客中查看帖子使用超鏈接。 我得到的錯誤是“使用mysite.urls中定義的URLconf,Django按以下順序嘗試了這些URL模式:

  1. ^ blog / ^ $
  2. ^ blog / ^(博客/?P \\ d +)/ $
  3. ^ admin /當前的URL,blog / 3,與這些中的任何一個都不匹配。“

我的mysite \\ blog \\ url.py文件如下所示:

from django.conf.urls import patterns, include, url
from django.views.generic import ListView,DetailView
from blog.models import Post

urlpatterns=patterns('',
                     url(r'^$',ListView.as_view(
                         queryset=Post.objects.all().order_by("-date")[:10],
                         template_name="blog.html")),
                     url(r'^(blog/?P<post_id>\d+)/$', DetailView.as_view(
                         model = Post,
                         template_name = "post.html")),                    
)

如何在我的博客應用程序中顯示帖子的DetailView?我有blog,base和post.html的模板文件。 post.html看起來像:

{%extends "base.html"%}
{%block content%}


<h3><a href="/blog/{{post.id}}">{{post.title}}</a></h3>
<div class ="post_meta">
    on {{post.date}}
</div>

<div class = "post_body">
{{post.body|safe}}
</div>

{% endblock %}

您的URLConf未正確調用模板中的URL。

url(r'^(blog/?P<post_id>\d+)/$',

...正在嘗試使用/(blog作為網址的一部分)獲取網址,例如www.yoursite.com/blog/(blog/post_id/ 。首先,當您包含yourapp.urls時,您已經包含/ blog /在主要的URLConf。第二,你的(在錯誤的地方。

嘗試將其更改為:

url(r'^(?P<post_id>\d+)/$',....rest of your URLConf....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM