Python NoReverseMatch at/url与slug有问题

Python NoReverseMatch at/url与slug有问题,python,django,django-views,django-urls,Python,Django,Django Views,Django Urls,我在/获得了NoReverseMatch: 找不到参数为“(u“”,)”且关键字参数为“{}”的“类别”的反转。尝试了1个模式:[“类别/(?P[\w\-]+)/$”] 我不确定哪里出了问题。我知道它的起因,但我不知道为什么。此url导致错误: url(r'^category/(?P<category_name_slug>[\w\-]+)/$', views.category, name='category'), 首先要注意的是,您有一个空的slug: 对于参数为'(u'',)且关

我在/获得了NoReverseMatch:

找不到参数为“(u“”,)”且关键字参数为“{}”的“类别”的反转。尝试了1个模式:[“类别/(?P[\w\-]+)/$”]

我不确定哪里出了问题。我知道它的起因,但我不知道为什么。此url导致错误:

url(r'^category/(?P<category_name_slug>[\w\-]+)/$', views.category, name='category'),

首先要注意的是,您有一个空的slug:

对于参数为'(u'',)且关键字参数为{}的“类别”未找到相反的结果

一个问题是如何定义
类别
-是一种方法,称之为:


此外,您应该检查您的类别是否生成了非空段塞。

首先要注意的是,您有一个空段塞:

对于参数为'(u'',)且关键字参数为{}的“类别”未找到相反的结果

一个问题是如何定义
类别
-是一种方法,称之为:


另外,您应该检查您的类别是否生成了非空的slug。

很抱歉,我不明白您的意思,我在index.html中调用了categories。我不认为这是问题的原因?或者是吗?@haloyoba换句话说,将
categories=Category.objects.all
替换为
categories=Category.objects.all()
,看看是否有帮助。哦,这是个愚蠢的错误。我还是会犯同样的错误…嗯。。。我想这是源于url中的slug。当我没有url时,我会得到categories@haloyoba好的,你能展示一下你的slug是如何生成的吗?这里可能有问题,slug被设置为空的。你好,我刚刚编辑了我的views.py,我是不是在index.html中做了这部分,我最好的猜测是我没有在url中正确命名。。。。。。。(sry这是我在Django的第一个项目,很抱歉我不明白你的意思,我在index.html中调用了categories。我不认为这是问题的原因?或者是吗?@haloyoba换句话说,用
categories=Category.objects.all
替换为
categories=Category.objects.all()
看看是否有帮助。哦,这是一个愚蠢的错误。我仍然会收到相同的错误…嗯…我认为它来自url中的slug。当我没有url时,我会得到所有的名称categories@haloyoba好的,你能展示一下你的slug是如何生成的吗?这里可能有问题,slug被设置为空。你好,我刚刚编辑了我的views.py,我做了这个吗部分就在index.html中,我最好的猜测是我没有在url中正确命名……(sry这是我在django的第一个项目
{% for category in categories %}
    <li class="list-group-item"><a href="{% url 'category' category.slug %}">{{ category.name }}</a></li>
{% endfor %}
    #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)
categories = Category.objects.all()
                             HERE^