诊所/EDC的简单导航栏课程

edc-navbar的Python项目详细描述


pypitraviscodecovdownloads

EDC_导航栏

EDC的简单导航栏类

安装

INSTALLED_APPS中包含edc_navbar.apps.AppConfig

概述

导航条在应用程序navbars.py中声明,将由edc_navbar自动发现并存储在站点globalsite_navbars中。

默认情况下,站点全局设置中会添加一个基本导航栏。要加载它,需要在主项目urls.py中为home_urladministration_urllogout_url定义命名的url。默认导航栏中定义的命名URL不包含命名空间。

例如,在“main”项目应用程序中urls.py

urlpatterns=[...path('login',LoginView.as_view(),name='login_url'),path('logout',LogoutView.as_view(pattern_name='login_url'),name='logout_url'),path('admininistration/',AdministrationView.as_view(),name='administration_url'),path('',HomeView.as_view(manual_revision='1.0'),name='home_url'),...]

通过将settings.DEFAULT_NAVBAR设置为自定义导航栏的名称,可以将default导航栏更改为其他导航栏。您需要手动声明和注册自定义导航栏。见edc_navbar.navbars

NavbarItem的默认模板是navbar_item.html。您可以在NavbarItem上声明自定义模板。

渲染导航栏

例如,在base.html中:

{%loadedc_dashboard_extras%}...{%show_edc_navbar%}...

呈现的html来自edc_navbar.html

声明和注册导航栏

navbar是在需要navbar的每个应用程序的navbars.py模块中定义并注册到站点全局的。

示例navbars.py

fromedc_navbarimportNavbarItem,site_navbars,Navbarurl_namespace='edc_pharmacy_dashboard'# instantiate a Navbarpharmacy_dashboard=Navbar(name='pharmacy_dashboard')# add items to the navbarpharmacy_dashboard.append_item(NavbarItem(name='prescribe',title='Prescribe',label='prescribe',glyphicon='glyphicon-edit',url_name=f'{url_namespace}:prescribe_listboard_url'))pharmacy_dashboard.append_item(NavbarItem(name='dispense',title='Dispense',label='dispense',glyphicon='glyphicon-share',url_name=f'{url_namespace}:dispense_listboard_url'))# register the navbar to the sitesite_navbars.register(pharmacy_dashboard)

在视图中访问导航栏

接下来,向视图中添加NavbarViewMixin,并按名称设置导航栏。导航栏将呈现为字符串并添加到视图上下文中。

fromedc_navbarimportNavbarViewMixinclassHomeView(EdcViewMixin,NavbarViewMixin,TemplateView):navbar_name='pharmacy_dashboard'navbar_selected_item='prescribe'

渲染导航栏项目

NavbarItem的默认模板是navbar_item.html。您可以在NavbarItem上声明自定义模板。

每个NavBaritem的权限

每个navBaritem都可以声明django权限codename。代码名将与模型edc_navbar.navbar关联。

例如:

fromedc_navbarimportNavbarItem,site_navbars,Navbarurl_namespace='edc_pharmacy_dashboard'# instantiate a Navbarpharmacy_dashboard=Navbar(name='pharmacy_dashboard')# add items to the navbarpharmacy_dashboard.append_item(NavbarItem(name='prescribe',title='Prescribe',label='prescribe',glyphicon='glyphicon-edit',permissions_codename='nav_pharmacy_prescribe',url_name=f'{url_namespace}:prescribe_listboard_url'))pharmacy_dashboard.append_item(NavbarItem(name='dispense',title='Dispense',label='dispense',glyphicon='glyphicon-share',permissions_codename='nav_pharmacy_dispense',url_name=f'{url_namespace}:dispense_listboard_url'))# register the navbar to the sitesite_navbars.register(pharmacy_dashboard)

从上面可以引用代码中的edc_navbar.nav_pharmacy_prescribeedc_navbar.nav_pharmacy_dispense

{%ifperms.edc_navbar.nav_pharmacy_dispense%}href="some_url"{%else%}disabled{%endif%}

另请参见:

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

推荐PyPI第三方库


热门话题
java模拟存储库对象从controller testcase返回空结果?   Java扫描程序跳行异常   c#混淆If语句?   java为什么日志中的stacktrace前面没有这一行?   java如何使SSHJ在非标准端口上启动出站SFTP?   java我如何确定为什么每周收入没有在我的程序中显示前三次?   java如何判断堆叠条形图的轴的行为?   java rest json API的Web服务器体系结构   java ClassCastException:javax。摆动按扭   Java在Linux上不读取excel文件(使用Apache POI)   反馈错误后,java Wicket 1.4.9无法从modal使用AjaxRequestTarget!   java方法头中“静态”的含义是什么?   java无法在我的tomcat应用程序中添加外部库   java使用Itext Pdf将图像添加到Pdf文件   java为什么当我调用universe时java3d会闪烁。getCanvas()。getView()。重新油漆();   java Gson嵌套类在使用proguard时为空   java如何确定JSON路径对文档是否有效   java在使用Jsoup解析时保持HTML布尔属性的原始形式   使用Java SDK,如何在Azure存储文件服务中为文件设置元数据?