django通用视图面包屑

django-view-breadcrumbs的Python项目详细描述


django视图面包屑Build StatusCodacy BadgePyPI version

这扩展了django-bootstrap-breadcrumbs,提供了通用的面包屑混合类。

只需要将{% breadcrumb $label $viewname [*args] [**kwargs] %}添加到基模板。

Screenshot

base.html模板中,只需添加render_breadcrumbs标记和任何模板 继承基的应该包含breadcrumbs。 即

base.html

{% load django_bootstrap_breadcrumbs %}

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

还有你的create.html

{% extends 'base.html' %}
< H2>面包屑混合类。< /H2>
  • BaseBreadcrumbMixin-基视图需要一个crumbs类属性。
  • CreateBreadcrumbMixin-用于创建视图Home \ Posts \ Add Post
  • DetailBreadcrumbMixin-用于详细视图Home \ Posts \ Post 1
  • ListBreadcrumbMixin-对于列表视图Home \ Posts
  • UpdateBreadcrumbMixin-用于更新视图Home \ Posts \ Post 1 \ Update Post 1

安装:

$ pip install django-view-breadcrumbs

将应用程序添加到已安装的应用程序中

INSTALLED_APPS=[...'django_bootstrap_breadcrumbs','view_breadcrumbs',...]

用法:

^ }包含可以添加到基于类的视图的泛型混合。

使用通用面包屑混合将每个面包屑动态添加到视图中 并且可以通过提供crumbs属性来重写。

设置:

BREADCRUMBS_HOME_LABEL-设置根标签(默认值:Home

样品碎屑:Home \ Posts \ Test - Post

NOTE: All url config should use a pattern view_name=model_verbose_name_{action} i.e view_name=post_detail for detail view.

操作包括:

  • “列表”-ListView
  • “更改”-UpdateView
  • “细节”-DetailView

在你的urls.py

urlpatterns=[...path('posts/<slug:slug>',views.PostDetail.as_view(),name='post_detail'),...]

views.py

fromdjango.views.genericimportDetailViewfromview_breadcrumbsimportDetailBreadcrumbMixinclassPostDetail(DetailBreadcrumbMixin,DetailView):model=Posttemplate_name='app/post/detail.html'

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

样品碎屑:Posts

fromdjango.views.genericimportListViewfromview_breadcrumbsimportListBreadcrumbMixinclassPostList(ListBreadcrumbMixin,ListView):model=Posttemplate_name='app/post/list.html'add_home=False

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

定制面包屑:Home \ My Test Breadcrumb

URL配置

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

fromdjango.urlsimportreversefromdjango.views.genericimportListViewfromview_breadcrumbsimportListBreadcrumbMixinfromdemo.modelsimportTestModelclassTestView(ListBreadcrumbMixin,ListView):model=TestModeltemplate_name='app/test/test-list.html'crumbs=[('My Test Breadcrumb',reverse('test_list_view'))]# OR reverse_lazy

fromdjango.urlsimportreversefromdjango.views.genericimportListViewfromview_breadcrumbsimportListBreadcrumbMixinfromdemo.modelsimportTestModelfromdjango.utils.functionalimportcached_propertyclassTestView(ListBreadcrumbMixin,ListView):model=TestModeltemplate_name='app/test/test-list.html'@cached_propertydefcrumbs(self):returnsuper(TestView,self).crumbs+[(self.object.name,reverse('test_detail_view',kwargs={'pk':self.object.pk})),]

覆盖特定视图的主标签

fromdjango.utils.translationimportgettext_lazyas_fromview_breadcrumbsimportDetailBreadcrumbMixinfromdjango.views.genericimportDetailViewfromdemo.modelsimportTestModelclassTestDetailView(DetailBreadcrumbMixin,DetailView):model=TestModelhome_label=_('My custom home')template_name='demo/test-detail.html'

Refer to the demo app for more examples.

在本地运行

$ make migrate
$ make run

启动运行演示应用程序的django服务器。

访问http://127.0.0.1:8000

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在mybatis中捕获SQLException   java Spring XML自动连线记录器不确定目标类名   JavaSpringDataJPA:使用联接表进行排序和分页   JAVA循环的lang.NullPointerException数组   带Jetty和空密码的java双向SSL   当对象为类型时,java在tableview上显示图像   如何在GWT中从javascript到java获取返回类型“any”?(泛型类型传递)   java从ListView Android中的微调器获取选定值   java缓冲图像中较小的图像被裁剪,我如何解决这个问题?   java Spring MVC 3.1:使用SimpleUrlHandlerMapping和通用基本控制器时的问题   java在每次调用时生成唯一的随机数   java libGDX:在屏幕上移动多边形   java TextView未在应用程序中居中,但在match_约束中居中   在python中重复运行同一java函数的最佳方式是什么?