轻松地向django管理表单添加选项卡。

django-tabbed-admin的Python项目详细描述


PyPI versionbuild-statuscoverage

Django选项卡式管理

简单的库,可以轻松地将选项卡添加到管理表单。它还允许用户对内联和字段集重新排序。 Django选项卡式管理与Django Grappelli和Django Gipsy兼容。

https://box.everhelper.me/attachment/256054/rSqCFM20d245qFlG5z64EgiOVpeuTU3P/341506-h1u4JrpaUan0tG2e/screen.png

格拉佩利:

https://box.everhelper.me/attachment/256057/rSqCFM20d245qFlG5z64EgiOVpeuTU3P/341506-kQnZXKsO0pfrU4cI/screen.png

安装

强烈建议从git和pip将此主题安装到项目virtualenv上。

来自PYPI

pip install django-tabbed-admin

来自Github

https://github.com/omji/django-tabbed-admin#egg=tabbed_admin

设置

只需将应用程序添加到settings.py中的已安装应用程序列表中即可

INSTALLED_APPS=(...'tabbed_admin'...)

django tabbed admin默认情况下需要jquery ui tabs插件才能工作。它与使其正常工作所需的静态文件打包在一起,但是,默认情况下不会激活它们,以避免与其他库发生冲突。

要激活jquery ui statics,请在项目设置中添加以下行:

TABBED_ADMIN_USE_JQUERY_UI=True

配置管理选项卡

为了将选项卡添加到模型管理,它应该继承tabbed_admin.tabbedmodeladmin并包含tabs属性。 tab属性配置试图保持与fieldset和inline设置逻辑相似。

基本上,为每个选项卡创建元组的方法与为字段集创建元组的方法完全相同,只是可以在两者之间的任意位置添加内联。

tab_overview=((None,{'fields':('name','bio','style')}),MusicianInline,('Contact',{'fields':('agent','phone','email')}))

然后必须将每个元组传递给一个tabs属性,该属性以详细名称为前缀,以显示在选项卡中:

tabs=[('Overview',tab_overview),('Albums',tab_album)]

一个完整的示例将给出:

fromdjango.contribimportadminfromtabbed_adminimportTabbedModelAdminfrom.modelsimportBand,Musician,AlbumclassMusicianInline(admin.StackedInline):model=Musicianextra=1classAlbumInline(admin.TabularInline):model=Albumextra=1@admin.register(Band)classBandAdmin(TabbedModelAdmin):model=Bandtab_overview=((None,{'fields':('name','bio','style')}),MusicianInline,('Contact',{'fields':('agent','phone','email')}))tab_album=(AlbumInline,)tabs=[('Overview',tab_overview),('Albums',tab_album)]

动态配置选项卡

请注意,这些选项卡将完全重置fieldset和inlines属性,以避免在保存表单时发生冲突。两个属性都被传递给tabs属性的条目覆盖。出于同样的原因,强烈建议不要覆盖get_fieldsets或get_inline。

可以像处理字段集或内联一样动态传递和修改选项卡。

defget_tabs(self,request,obj=None):tabs=self.tabsifobjisnotNone:tab_overview=self.tab_overview+('Social',{'fields':('website','twitter','facebook')})tab_ressources=self.tab_ressources+(InterviewInline,)tabs=[('Overview',tab_overview),('Ressources',tab_ressources)]self.tabs=tabsreturnsuper(BandAdmin,self).get_tabs(request,obj)

更改jquery ui

您可以通过重写 管理类

classMedia:css={'all':('css/jquery-ui.theme.min.css',)}

或者通过更改以下设置,

选项卡式管理查询用户界面css选项卡式管理查询用户界面js

TABBED_ADMIN_JQUERY_UI_CSS='static/css/my-custom-jquery-ui.css'TABBED_ADMIN_JQUERY_UI_JS='static/js/my-custom-jquery-ui.js'

贡献

请随意贡献。非常感谢您的帮助和建议。 您将找到一个示例应用程序来轻松运行和开发库。

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

推荐PyPI第三方库


热门话题
安卓 studio安装的java Unity本机广告   java如何将映射转换为对象   java我试图使用rest控制器从h2数据库中检索记录,但它说没有数据集   反思为什么会抛出java。lang.InstanceException?   在opensuse中找不到Java/javac   java为Android上的谷歌地图添加了5900多个标记。如何有效地做   java如何在if语句中使用循环   java如何在JPA(Hibernate)中映射一对多关系和复合主键?   如何在Java中读取和写入外部进程?   Java线程。睡眠时间最短   java使用EclipseGradle插件如何离线托管和使用依赖项(库jar文件)   java为什么虚拟引用在排队时没有被清除?   java无法理解如何创建用于响铃报警的取消按钮   java解析不应通过注入容器错误发生   java Toast或ProgressDialog不显示   java在自定义对象上使用优先级队列的更好方法   java格式的。wmv文件。(或者任何视频文件都很好)   从页面调用另一个侦听器后,不会调用java JSF<f:ajax>侦听器   java注释ConfigApplicationContext不能多次刷新有什么原因吗?