簡體   English   中英

Django 2.0中/ blog /處的NoReverseMatch

[英]NoReverseMatch at /blog/ in django 2.0

嘗試在/ blog /反向將'category_detail'的博客類別頁面NoReverseMatch設置為帶有參數'('',)'時遇到此錯誤。 嘗試了1個模式:['blog \\ / category \\ -detail \\ /((?P [-a-zA-Z0-9 _] +)$']

這是我的url.py

 from django.urls import path,include from .import views urlpatterns = [ path('blog/',views.post_list,name="post_list"), path('blog/post-detail/<slug:slug>',views.post_detail,name="post_detail"), path('blog/category-detail/<slug:slug>',views.category_detail,name="category_detail"), ] 

views.py

 from django.shortcuts import render,get_object_or_404 from.models import Post,Category # Create your views here. def post_list(request): object_list=Post.objects.all() context={ 'object_list': object_list, } return render(request,"blog.html",context) def post_detail(request,slug=None): post=get_object_or_404(Post,slug=slug) context={ 'post':post, } return render(request,"post_detail.html",context) def category_detail(request,slug=None): category=get_object_or_404(Category,slug=slug) post=Post.objects.filter(category=category,status='Published') context={ 'category':category, 'post':post, } return render(request,"category_detail.html",context) 

blog.html

 {% for obj in object_list %} {% if obj.status == 'Published' %} <article> <div class="embed-responsive embed-responsive-16by9"> <img src="images/blog1.jpg" alt="" /> </div> <div class="post-content"> <h2>{{obj.title}}</h2> <div> {{obj.created}} Author {{obj.user}} <h4><a href="{% url 'category_detail' slug=post.category.slug %}">{{obj.Category}}</a></h4> <hr/> <p>{{obj.body}}</p> <a class="mtr-btn button-navy ripple" href= "{% url 'post_detail' obj.slug %}">Continue reading →</a><br> </div> </article> {% endif %} {% endfor %} 

category_detail.html

 {% extends "base.html" %} {% load static %} {% block seo_title %}{{category.seo_title}}{% endblock %} {% block seo_description %}{{category.seo_description}}{% endblock %} {% block Content %} <h2>{{category.title}}</h2> <p>{{category.description}}</p> {% for item in post %} {{item.title}} {{item.body|truncatechars:50}} {% endfor %} {% endblock Content %} 

注意其他VIEWS.PY僅在category_detail函數中起作用

正如錯誤所說,這里缺少參數。 也許您需要將{% url 'category_detail' slug=post.Category.slug %}更改為{% url 'category_detail' slug=post.Category.slug %} {% url 'category_detail' slug=obj.category.slug %}因為在blog.html中看不到任何post變量引用模板。

更新

您尚未共享您的Model代碼,但是我假設您的Post Model具有Category模型的外鍵,並且看起來像Category=models.ForeignKey(Category) 因此,您需要像這樣更新視圖:

def category_detail(request,slug=None):
    category=get_object_or_404(Category,slug=slug)
    post=Post.objects.filter(Category=category,status='Published')

暫無
暫無

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

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