轻松地向django管理表单添加选项卡。
django-tabbed-admin的Python项目详细描述
Django选项卡式管理
简单的库,可以轻松地将选项卡添加到管理表单。它还允许用户对内联和字段集重新排序。 Django选项卡式管理与Django Grappelli和Django Gipsy兼容。
格拉佩利:
安装
强烈建议从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'
贡献
请随意贡献。非常感谢您的帮助和建议。 您将找到一个示例应用程序来轻松运行和开发库。