我得到NoReverseMatch at /
:
Reverse for 'category' with arguments '(u'',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['category/(?P[\w\-]+)/$']
我不知道哪里出了问题。我知道是什么原因,但我不知道为什么。此url导致错误:
url(r'^category/(?P<category_name_slug>[\w\-]+)/$', views.category, name='category'),
错误来自于此索引.html你知道吗
{% for category in categories %}
<li class="list-group-item"><a href="{% url 'category' category.slug %}">{{ category.name }}</a></li>
{% endfor %}
我很确定我的车没问题视图.py但以防万一我会把它贴在这里
#for front page
def index(request):
"""This view return index page. In index page, there is thread list.
And thread list can be sorted by score, number of comment, date, title using paging.
GET parameters are 'sort' and 'page'. 'sort' is sorting methods. 'page' is number of page.
:param request: Django request object
:return: Thread list page
"""
categories = Category.objects.all()
try:
sort = request.GET["sort"].strip()
sort_method = SortMethods[sort]
page = request.GET["page"].strip()
except KeyError:
sort_method = SortMethods.score
page = 1
if sort_method == SortMethods.date:
thread_list = Post.objects.order_by("-pub_date")
else:
thread_list = Post.objects.all()
thread_list = sorted(thread_list, key=lambda x: x.get_score(), reverse=True)
paginator = Paginator(thread_list, 30)
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(1)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
context = {
"posts": posts,
"pages": paginator.page_range,
"sort": sort_method.name,
"categories":categories
}
return render(request, "main/index.html", context)
#for single-post page
def post(request, slug):
single_post = get_object_or_404(Post, slug=slug)
single_post.views += 1 # increment the number of views
single_post.save() # and save it
context_dict = {
'single_post' :single_post,
}
return render(request, 'main/post.html', context_dict)
#for category page
def category(request, category_name_slug):
try:
category = Category.objects.get(slug=category_name_slug)
sort = request.GET["sort"].strip()
sort_method = SortMethods[sort]
page = request.GET["page"].strip()
except KeyError:
sort_method = SortMethods.score
page = 1
if sort_method == SortMethods.date:
thread_list = Post.objects.filter(category=category).order_by("-pub_date")
else:
thread_list = Post.objects.filter(category=category)
thread_list = sorted(thread_list, key=lambda x: x.get_score(), reverse=True)
paginator = Paginator(thread_list, 30)
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(1)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
context = {
"posts": posts,
"pages": paginator.page_range,
"sort": sort_method.name,
"categories":category,
"cat_name_slug":category_name_slug,
}
return render(request, "main/index.html", context)
首先要注意的是,您有一个空的slug:
一个问题是如何定义} 是一个方法,称之为:
categories
-^{此外,您应该检查您的类别是否生成了非空的slug。你知道吗
相关问题 更多 >
编程相关推荐