Django-模板不显示DetailView

时间:2018-10-02 10:46:47

标签: python django templates jinja2

尝试为我的帖子列表中的每个帖子设置DetailView时遇到以下错误:

  

/ blog / post-list / NoReverseMatch与'postdetail'反向使用   找不到关键字参数'{'id':''}'。尝试了1种模式:   ['blog \ / post-list /(?P \ d +)/ $']

代码在这里:

views.py

def PostList(request):
    postlist = Post.objects.all()
    context = {
        "postlist":postlist
    }
    template_name = "postlist.html"
    return render(request,template_name,context)   

def PostDetail(request,id):
    post = get_object_or_404(Post,id=id)
    context = {
        'post':post
    }
    template_name = "postdetail.html"
    return render(request,template_name,context)

postlist.html

{% extends "base.html" %}

{% block content %}
<div class="container">
    <div class="row">
        <div class="col">
            {% for item in postlist %}
            <ul>
                <li><h3>Title:</h3> {{ item.title }} <smal>{{ item.timestamp }}</smal></li>
                <li><h3>description:</h3>{{ item.description }}</li>
                <li><h3>Updated:</h3>{{ item.updated }}</li>
                <li><h>Author: {{ item.Author }}</h></li>
                {{ item.id }}
            </ul>
            <a href="{% url 'blog:postdetail' id=post.id %}" class="btn btn-primary">{{ item }}</a>
            {% endfor %}
        </div>
    </div>
</div>

{% endblock %}

urls.py

urlpatterns = [
    re_path(r'^post-list/$',views.PostList,name ='postlist'),
    re_path(r'^post-list/(?P<id>\d+)/$',views.PostDetail,name="postdetail"),
    path ('post-create',views.CreatPost, name='post-create'),
    re_path (r'^post-list/update/(?P<id>\d+)/$',views.PostUpdateis,name='update-post'),
    # re_path(r'^(?P<slug_post>[-\w])+/$',views.PostDetail,name="postdetail"),    
]

有人知道如何解决吗?

0 个答案:

没有答案