Skip to main content

Django generic view breadcrumbs

Project description

django-view-breadcrumbs Build Status Codacy Badge PyPI version

This extends django-bootstrap-breadcrumbs providing generic breadcrumb mixin classes.

Replaces having to add {% breadcrumb $label $viewname [*args] [**kwargs] %} to every template.

Breadcrumb mixin classes provided.

  • BaseBreadcrumbMixin - Base view requires a crumbs class property.
  • CreateBreadcrumbMixin - For create views Home \ Posts \ Add Post
  • DetailBreadcrumbMixin - For detail views Home \ Posts \ Post 1
  • ListBreadcrumbMixin - For list views Home \ Posts
  • UpdateBreadcrumbMixin - For Update views Home \ Posts \ Post 1 \ Update Post 1

Installation:

$ pip install django-view-breadcrumbs

Add app to your INSTALLED_APPS

INSTALLED_APPS = [
    ...
    'view-breadcrumbs',
    ...
]

Usage:

django-view-breadcrumbs includes generic mixins that can be added to a class based view.

Using the generic breadcrumb mixin each breadcrumb will be added to the view dynamically and can be overridden by providing a crumbs property.

Sample crumbs: Home \ Posts \ Test - Post

from django.views.generic import DetailView
from django_view_breadcrumbs import DetailBreadcrumbMixin


class PostDetail(DetailBreadcrumbMixin, DetailView):
    model = Post
    template_name = 'app/post/detail.html'

In your base.html template simply add the render_breadcrumbs tag and any template that inherits the base should have breadcrumbs included. i.e

In your base.html

{% load django_bootstrap_breadcrumbs %}

{% block breadcrumbs %}
    {% render_breadcrumbs %}
{% endblock %}

And your create.html.

{% extends 'base.html' %}

All crumbs use the home root path \ as the base this can be excluded by specifying add_home = False

Sample crumbs: Posts

from django.views.generic import ListView
from django_view_breadcrumbs import ListBreadcrumbMixin


class PostList(ListBreadcrumbMixin, ListView):
    model = Post
    template_name = 'app/post/list.html'
    add_home = False

Can also override the view breadcrumb by specifying a list of tuples [(Label, view path)].

Custom crumbs: Home \ My Test Breadcrumb

URL conf.

urlpatterns = [
   path('my-test-list-view/', views.TestView.as_view(), name='test_list_view'),
   path('my-test-detail-view/<int:pk>/', views.TestView.as_view(), name='test_detail_view'),
]

views.py

from django.urls import reverse
from django.views.generic import ListView
from django_view_breadcrumbs import ListBreadcrumbMixin


class TestView(ListBreadcrumbMixin, ListView):
    model = TestModel
    template_name = 'app/test/test-list.html'
    crumbs = [('My Test Breadcrumb', reverse('test_list_view')]  # OR reverse_lazy

OR

class TestView(ListBreadcrumbMixin, ListView):
    model = TestModel
    template_name = 'app/test/test-list.html'

    @cached_property
    def crumbs(self):
        return super(TestView, self).crumbs + [
            (self.object.name , reverse('test_detail_view', kwargs={'pk': self.object.pk})
        ]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-view-breadcrumbs-0.0.4.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

django_view_breadcrumbs-0.0.4-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file django-view-breadcrumbs-0.0.4.tar.gz.

File metadata

  • Download URL: django-view-breadcrumbs-0.0.4.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.4

File hashes

Hashes for django-view-breadcrumbs-0.0.4.tar.gz
Algorithm Hash digest
SHA256 d0137d8c8254f723a28f12048b3d8cf04ef730287f2fc5220634749fbf993582
MD5 626081eca9fcfd608a91ec969b8715fa
BLAKE2b-256 7da47897ef998cec49d5c0f6f742286dbc7fa2c01a2a3a2ccfa59e42a1298530

See more details on using hashes here.

File details

Details for the file django_view_breadcrumbs-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: django_view_breadcrumbs-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.1.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.4

File hashes

Hashes for django_view_breadcrumbs-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b5b34b60a57cf8cb5778759437bec4b2d34e8f82025d001843a132825333b98d
MD5 dadf703c9093360cd522f785b00414c8
BLAKE2b-256 c5c4a0e0a6e29fa3cfd9c641920077274291f744015222095c17816670fc7b1e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page