【Django基础入门】Breadcrumbs导航栏

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',
)


3:在模版中添加如下模块(可以先跳过这一步,待会回头在看)

				{% for breadcrumb in request.breadcrumbs %}
				<a href="{{ breadcrumb.url }}">{{ breadcrumb.name }}</a>{% if not forloop.last %} » {% endif %}
				{% endfor %}

4:在view.py中添加如下信息

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/')
                         ])
放到任何与页面显示有关的 view 中(比如 render_to_response 返回了一个模版),它不会影响你的代码,所以,添加上后可以忽视它,

然后在相应的模版里加上 如上 第三步 代码,即可显示 导航栏。


优化:

当然,一般模版有继承关系,例如导航栏放在所有模版的公共模块(header.html),其它所有子模版集成header.html ,那么仅仅需要在 header.html 中添加如上第三步代码即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值