紅色字體是本人改動(本人使用過程中遇到的坑)
1:添加 django-breadcrumbs
- pip install django-breadcrumbs
2:a,在 MIDDLEWARE_CLASSES 添加 breadcrumbs.middleware.BreadcrumbsMiddleware
b,如果在 TEMPLATE_CONTEXT_PROCESSORS 沒有添加 context processor,那麼就添上它,如下:
- TEMPLATE_CONTEXT_PROCESSORS = (
- "django.contrib.auth.context_processors.auth",
- "django.core.context_processors.debug",
- "django.core.context_processors.i18n",
- "django.core.context_processors.media",
- "django.contrib.messages.context_processors.messages",
- 'django.core.context_processors.request',
- )
本人使用django1.9時需要在INSTALLED_APPS添加下面兩行:
'django.contrib.sites',
'django.contrib.flatpages',
3:在模版中添加如下模塊(可以先跳過這一步,待會回頭在看)
- {% for breadcrumb in request.breadcrumbs %}
- <a href="{{ breadcrumb.url }}">{{ breadcrumb.name }}</a>{% if not forloop.last %} » {% endif %}
- {% endfor %}
4:在view.py中添加如下信息
- from django.shortcuts import render_to_response
- from django.template import RequestContext
- def activity(request):
- request.breadcrumbs([(_("homepage"),'/'),
- (_("activity"),'/activity/')
- ])
- activities = Activity.objects.all()
- return render_to_response('org/activity.html' , {'activities':activities} , context_instance=RequestContext(request))
- request.breadcrumbs([(_("homepage"),'/'),
- (_("activity"),'/activity/')
- ])
然後在相應的模版里加上 如上 第三步 代碼,即可顯示 導航欄。
優化:
當然,一般模版有繼承關係,例如導航欄放在所有模版的公共模塊(header.html),其它所有子模版集成header.html ,那麼僅僅需要在 header.html 中添加如上第三步代碼即可。