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中的else if语句返回语法错误   http如何解析从表单到REST Java/Webservice的post请求   java如何在SpringBoot中为RestTemplate编写JUnit测试   java动态检查实例是否实现接口   java在Android中使用ArrayAdaptor时,数据不会显示   根据前序遍历返回二进制树的java方法   Arquillian测试类中的java注入始终为空   用户界面Java Swing自定义控件   java使用CompletableFutures递归地从同一函数的多个调用构建列表   在Java中将“.00”添加到整数BigDecimal   卡夫卡java未知\u主题\u或\u部分错误间歇性   java为什么我的getString()方法总是返回null?   java renameTo无法重命名文件   java为什么我可以强制转换对象?可以用其他对象来完成吗?   带有回写条件的java多根记录器   关于stackoverflow错误的java帮助?   java Websphere消息队列多线程   Java图形窗口/画布未垂直显示完整的六边形网格   java Sakai未在Tomcat服务器中启动