Skip to content

Instantly share code, notes, and snippets.

@linxuedong
Last active September 22, 2017 16:07
Show Gist options
  • Save linxuedong/647d08cae5d053076126f786bf058f49 to your computer and use it in GitHub Desktop.
Save linxuedong/647d08cae5d053076126f786bf058f49 to your computer and use it in GitHub Desktop.
Django 1.10 use [chronossc/django-breadcrumbs](https://github.com/chronossc/django-breadcrumbs)

1 - Install django-breadcrumbs

pip install django-breadcrumbs

Add breadcrumbs.middleware.BreadcrumbsMiddleware to your MIDDLEWARE and breadcrumbs to your INSTALLED_APPS.

2 - Adding breadcrumbs in class based view

class MusicListView(ListView):
    model = Music
    template_name = 'dashboard/music_list.html'

    def get(self, request, *args, **kwargs):
        request.breadcrumbs([
            ('Home', '/dashboard/'),
            ('Music List', request.path),
        ])
        context = super(MusicListView, self).get(
            request, *args, **kwargs)

        return context

3 - Enable FlatPages + Breadcrumbs

add breadcrumbs.middleware.FlatpageFallbackMiddleware in your MIDDLEWARE and django.contrib.flatpages to your INSTALLED_APPS.

4 - Using in templates

<!-- 面包屑 -->
{% if request.breadcrumbs %}
  <nav class="breadcrumb">
    {% for breadcrumb in request.breadcrumbs %}
      {% if not forloop.last %}
        <a href="{{ breadcrumb.url }}" class="breadcrumb-item">{{ breadcrumb.name }}</a>
      {% else%}
        <span class="breadcrumb-item active">{{ breadcrumb.name }}</span>
      {% endif %}
    {% endfor %}
  </nav>
{% endif %}
@linxuedong
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment