我正在尝试使用两个 slug 来生成一种帖子的网址。我的网站按类别划分,每个人都有一个或多个帖子。
视图.py
def singlePost(request, slug_post):
blogpost = get_object_or_404(BlogPost, slug_post=slug_post)
context = {"blogpost": blogpost}
return render(request, "blog/single_post.html", context)
def singleCategory_postList(request, slug_category):
category = get_object_or_404(Category, slug_category=slug_category)
blogpost = BlogPost.objects.filter(category=category)
context = {
"category": category,
"blogpost": blogpost,
}
return render(request, "blog/single_category.html", context)
我使用的 urls.py
path("category/<slug:slug_category>/", views.singleCategory_postList, name="single_category"),
path("<slug:slug_post>/", views.singlePost, name='single_blog_post'),
我想使用的 urls.py
path("<slug:slug_category>/", views.singleCategory_postList, name="single_category"),
path("<slug:slug_category>/<slug:slug_post>/", views.singlePost, name='single_blog_post'),
当我使用第二对路径时,它显示给我:
NoReverseMatch 在 /blog/gis/
反向使用关键字参数 '{'slug_post': 'rete-dei-sottoservizi-quadro-normativo'}' 未找到'single_blog_post'。尝试了 1 个模式:['blog\/(?P[-a-zA-Z0-9_]+)\/(?P[-a-zA-Z0-9_]+)\/$']
模型.py
class Category(models.Model):
category_name = models.CharField(
max_length=50,
verbose_name="Categorie",
help_text="Every category must be not longer then 50 characters",
unique=True,
)
slug_category = models.SlugField(
verbose_name="Slug",
unique=True,
help_text="Slug is a field in autocomplete mode, but if you want you can modify its contents",
)
....
在这个答案中解释了如何做与我尝试做的相同的事情,但对于我的情况,它不能正常工作,我不明白为什么。
阿晨1998
喵喵时光机
相关分类