Django函数问题和urlconf混淆

Django函数问题和urlconf混淆,django,function,blogs,categories,Django,Function,Blogs,Categories,我不能把我的问题放在一句话里。 我按照教程从头开始写博客。但该教程预测,所有类别、标记、月份和年份列表都在单独的模板中 我想在主博客页面上添加一个类别列表,一个月和年的列表 这就是我得到的。使用此代码,类别列表将显示在主页中,但仅当您转到blog/category url,而不仅仅是blog/where我想要它的位置时 **(r'^$', list),** (r'^archive/(\d{1,2})/$', list), (r'^\d{2}/d{4}/$', month)

我不能把我的问题放在一句话里。 我按照教程从头开始写博客。但该教程预测,所有类别、标记、月份和年份列表都在单独的模板中

我想在主博客页面上添加一个类别列表,一个月和年的列表

这就是我得到的。使用此代码,类别列表将显示在主页中,但仅当您转到blog/category url,而不仅仅是blog/where我想要它的位置时

    **(r'^$', list),**
    (r'^archive/(\d{1,2})/$', list),
    (r'^\d{2}/d{4}/$', month),
    (r'^([0-9]{4}/\d{1,2})/(?P<slug>.*)/$', detail),
    (r'^(?P<year>\d{4})/$', year),
    **(r'^category/$', category),**
但是没有运气

这与category.html和list.html中的模板中的代码相同:

 {% if categories %}
        {% for category in categories %}
        <li class="cat-item"><a href="category/{{ category.name.lower }}/"
            title="{{ category.name.capitalize }}">
             {{ category.name.capitalize }}</a>
         </li>
         {% endfor %}
         {% endif %}
是这样的。我尝试过这个,但在def列表中没有运气:

return render_to_response('blog/list.html',{'posts':posts,
                                       'next':next,
                                       'previous':previous,
                                       'categories':Category.objects.all(),
                                       },)
我怎样才能让博客/分类上显示的内容也显示在博客/分类上?
谢谢。

当您在浏览器中键入url时,会向服务器发送请求。Django然后获取url并将其与它的url模式进行匹配,以确定正确的视图。一旦找到一个视图,django就会停止匹配并执行该视图,而该视图又会返回一个响应

如果要在不同视图中使用类别,则必须确保在每个视图中为模板提供相同的
categories
上下文变量,或者,这通常要好得多。对于您的类别,这可能如下所示:

@register.inclusion_tag('blog/category_list.html')
def categories_list():
    return { 'categories': Category.objects.all() }
在文件“blog/categoy_list.html”中,将是当前同时位于“categories.html”和“list.html”中的代码。在这些文件中,将其替换为

{% load your_blog_tags %}
{% categories_list %}

你可以在任何需要分类列表的地方使用它。当然,年份和月份列表也是如此。

list
是Python的内置函数。我不建议您命名视图列表,因为它会影响内置的视图列表。好的,我这样做了,但我仍然一无所获。您的数据库中是否有一些
类别
?当您执行
python manage.py shell
然后执行
import
categories\u list()
时,会得到什么?导入是什么意思?因为我在我的博客应用程序文件夹中创建了一个templatetags文件夹,里面有以下文件:categories\u list.py categories\u list.pyc init.py init.pyc。代码与上面相同。因此,我在模板中加载categories_list,并在我希望它出现的地方有一个{{categories_list}}。是的,我在我的数据库中创建了3个类别,它们相应地显示在博客/类别页面上。但是如果它们被显示,那么就没有问题了!?使用
import
我的意思是
来自templatetags.categories\u list import categories\u list
。嘿,它成功了,谢谢:)对不起,花了几天时间我忘了告诉:)
@register.inclusion_tag('blog/category_list.html')
def categories_list():
    return { 'categories': Category.objects.all() }
{% load your_blog_tags %}
{% categories_list %}